Автор: tanaseduard
Дата сообщения: 12.04.2012 08:49
Кратко.
Есть ПО которое работает на базе пакетов. Каждый модуль ПО это пакет. При загрузку вызывается LoadPackage и при выгрузке UnloadPackage.
Есть в пакете с набором библиотек модуль для транслитерации по ГОСТУ для ОВИР.
Код:
Unit xelTranslit;
Interface
Const
CirylicUkr:String='АБВГҐДЕЄЖЗИІЇЙКЛМНОПРСТУФХЦЧШЬЮЯ‘aбвгґдеєжзиіїйклмнопрстуфхцчшьюя';
CirylicUkrLatOvir:Array[1..65] Of String=(
'A','B','V','H','G','D','E','Ie','Zh','Z','Y','I','I','I','K','L','M','N','O','P','R','S','T','U','F','Kh','Ts','Ch','Sh','','Iu','Ia','',
'а','b','v','h','g','d','e','ie','zh','z','y','i','i','i','k','l','m','n','o','p','r','s','t','u','f','kh','ts','ch','sh','','iu','ia');
CirylicRus:String='АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯабвгдеёжзийклмнопрстуфхцчшщьыъэюя';
CirylicRusLatOvir:Array[1..66] Of String=(
'A','B','V','G','D','E','Yo','Zh','Z','I','Y','K','L','M','N','O','P','R','S','T','U','F','Kh','Ts','Ch','Sh','Shch','''','Y','''','E','Yu','Ya',
'a','b','v','g','d','e','yo','zh','z','i','y','k','l','m','n','o','p','r','s','t','u','f','kh','ts','ch','sh','shch','''','y','''','e','yu','ya');
Function TranslitCirilicToLatOVIR(Const ACirylic:String):String;
Implementation
Function TranslitCirilicToLatOVIR(Const ACirylic:String):String;
Var
pu,i,l:integer;
Begin
Result:='';
l:=Length(ACirylic);
For i:=1 To l Do
Begin
pu:=Pos(ACirylic[i],CirylicUkr);
If pu<1 Then
Result:=Result+ACirylic[i]
Else
Result:=Result+CirylicUkrLatOvir[pu];
End;
End;
End.