Delphi World - ýòî ïðîåêò, ÿâëÿþùèéñÿ ñáîðíèêîì ñòàòåé è ìàëîäîêóìåíòèðîâàííûõ âîçìîæíîñòåé  ïî ïðîãðàììèðîâàíèþ â ñðåäå Delphi. Çäåñü âû íàéä¸òå ðàáîòû ïî ñëåäóþùèì êàòåãîðèÿì: delphi, delfi, borland, bds, äåëüôè, äåëôè, äýëüôè, äýëôè, programming, example, ïðîãðàììèðîâàíèå, èñõîäíûå êîäû, code, èñõîäíèêè, source, sources, ñîðöû, ñîðñû, soft, programs, ïðîãðàììû, and, how, delphiworld, áàçû äàííûõ, ãðàôèêà, èãðû, èíòåðíåò, ñåòè, êîìïîíåíòû, êëàññû, ìóëüòèìåäèà, îñ, æåëåçî, ïðîãðàììà, èíòåðôåéñ, ðàáî÷èé ñòîë, ñèíòàêñèñ, òåõíîëîãèè, ôàéëîâàÿ ñèñòåìà...
Óíèâåðñàëüíîå è áûñòðîå ïåðåêîäèðîâàíèå ñòðîêè èç êîäèðîâîê ANSI, KOI8-R, KOI8-U, OEM-DOS, ISO

Àâòîð: VEG
WEB-ñàéò: http://delphibase.endimus.com

{ **** UBPFD *********** by delphibase.endimus.com ****
>> Óíèâåðñàëüíîå è áûñòðîå ïåðåêîäèðîâàíèå ñòðîêè èç êîäèðîâîê
ANSI, KOI8-R, KOI8-U, OEM/DOS, ISO

 ýòîé ôóíêöèè èñïîëüçóåòñÿ ýëåìåíòàðíûé àëãîðèòì, êîòîðûé ïî ñêîðîñòè ðàáîòû
îïåðåæàåò ñâîè àíàëîãè, è ïîçâîëÿåò ïåðåêîäèðîâàòü òåêñò èç ðàçëè÷íûõ êîäèðîâîê.
Äëÿ ïåðåêîäèðîâàíèÿ ñòðîêè èñïîëüçóåòñÿ óíèâåðñàëüíàÿ ôóíêöèÿ ConvertEncoding,
ãäå â êà÷åñòâå ïåðâîãî ïàðàìåòðà âûñòóïàåò ñòðîêà, êîòîðóþ íåîáõîäèìî
ïåðåêîäèðîâàòü, à â êà÷åñòâå âòîðîãî - ìàòðèöà ïåðåêîäèðîâàíèÿ, êîòîðàÿ
îïðåäåëÿåò èç êàêîé êîäèðîâêè â êàêóþ íåîáõîäèìî ïåðåêîäèðîâàòü äàííóþ ñòðîêó.

 ýòîé âåðñèè èìååòñÿ 6 âèäîâ ìàòðèö ïåðåêîäèðîâàíèÿ (òèï TCodeMatrix):
1. cmAnsiToKoi8R - ïåðåêîäèðóåò ñòðîêó èç êîäèðîâêè ANSI â êîäèðîâêó KOI8-R
2. cmAnsiToKoi8U - ïåðåêîäèðóåò ñòðîêó èç êîäèðîâêè ANSI â êîäèðîâêó KOI8-U
3. cmKoi8RToAnsi - ïåðåêîäèðóåò ñòðîêó èç êîäèðîâêè KOI8-R â êîäèðîâêó ANSI
4. cmKoi8UToAnsi - ïåðåêîäèðóåò ñòðîêó èç êîäèðîâêè KOI8-U â êîäèðîâêó ANSI
5. cmOemDosToAnsi - ïåðåêîäèðóåò ñòðîêó èç êîäèðîâêè OEM/DOS â êîäèðîâêó ANSI
6. cmIsoToAnsi - ïåðåêîäèðóåò ñòðîêó èç êîäèðîâêè ISO â êîäèðîâêó ANSI

Çàâèñèìîñòè: System;
Àâòîð:       VEG, veg@tut.by, Ðåñïóáëèêà Áåëàðóñü - Ñëóöê
Copyright:   ©VEG, 31.10.2003
Äàòà:        31 îêòÿáðÿ 2003 ã.
***************************************************** }

type // Òèï ìàòðèö ïåðåêîäèðîâêè
  TCodeMatrix = array[1..255] of char;
const // Ìàòðèöû ïåðåêîäèðîâêè
  FirstCodes =
    #1#2#3#4#5#6#7#8#9#10#11#12#13#14#15#16#17#18#19#20#21#22#23#24#25#26#27#28+
   #29#30#31' !"#$%&''()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^' +
    '_`abcdefghijklmnopqrstuvwxyz{|}~';
  cmAnsiToKoi8R: TCodeMatrix = FirstCodes // ver 1.0, ©VEG, 31.10.2003
  + '€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·£—º»¼½¾¿áâ÷çäåöúé'
    + 'êëìíîïðòóôõæèãþûýÿùøüàñÁÂ×ÇÄÅÖÚÉÊËÌÍÎÏÐÒÓÔÕÆÈÃÞÛÝßÙØÜÀÑ';
  cmAnsiToKoi8U: TCodeMatrix = FirstCodes // ver 0.8, ©VEG, 31.10.2003
  + '€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·£—º»¼½¾¿áâ÷çäåöúé'
    + 'êëìíîïðòóôõæèãþûýÿùøüàñÁÂ×ÇÄÅÖÚÉÊËÌÍÎÏÐÒÓÔÕÆÈÃÞÛÝßÙØÜÀÑ';
  cmKoi8RToAnsi: TCodeMatrix = FirstCodes // ver 1.0, ©VEG, 31.10.2003
  + '-¦-¬L-++T++---¦¦---?¦•v??? ?°?·?=¦-¸ã㬬¬LLL---¦¦¦¦¨¦¦TTT¦¦¦+++©þàáöäåôãõ'
    + 'èéêëìíîïÿðñòóæâüûçøýù÷úÞÀÁÖÄÅÔÃÕÈÉÊËÌÍÎÏßÐÑÒÓÆÂÜÛÇØÝÙ×Ú';
  cmKoi8UToAnsi: TCodeMatrix = FirstCodes // ver 1.0, ©VEG, 31.10.2003
  + '-¦-¬L-++T++---¦¦---?¦•v??? ?°?·?=¦-¸ºã³¿¬LLL-´¢¦¦¦¦¨ª¦²¯T¦¦¦+¥¡©þàáöäåôãõ'
    + 'èéêëìíîïÿðñòóæâüûçøýù÷úÞÀÁÖÄÅÔÃÕÈÉÊËÌÍÎÏßÐÑÒÓÆÂÜÛÇØÝÙ×Ú';
  cmOemDosToAnsi: TCodeMatrix = FirstCodes // ver 1.0, ©VEG, 31.10.2003
  + 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîï---¦+¦¦¬¬¦¦¬---¬L+T+-+¦¦L'
    + 'ã¦T¦=+¦¦TTLL-ã++----¦¦-ðñòóôõö÷øùúûüýþÿ¨¸ªº¯¿¡¢°•·v¹¤¦ ';
  cmIsoToAnsi: TCodeMatrix = FirstCodes // ver 1.0, ©VEG, 31.10.2003
  + '????????????????????????˜??????? ¨€�ª½²¯£ŠŒŽ�­¡�ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖר'
    + 'ÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¹¸�ƒº¾³¿¼šœž�§¢Ÿ';

function ConvertEncoding(sIn: string; sCoding: string): string;
//sIn - ñòðîêà äëÿ ïåðåêîäèðîâàíèÿ
//sCoding - ìàòðèöà äëÿ ïåðåêîäèðîâàíèÿ
//result - ïîëó÷åííàÿ ïåðåêîäèðîâàííàÿ ñòðîêà
var
  iFtd: integer;
begin
  for iFtd := 1 to length(sIn) do
    result := result + sCoding[ord(sIn[iFtd])];
end; // ver 1.0, (C)Vrublevsky Evgeny Gennadyevich (BELARUS/SLUTSK), 31.10.2003

Ïðèìåð èñïîëüçîâàíèÿ:

var
  sOut: string;
begin
  sOut := ConvertEncoding(ConvertEncoding('Òåñò!', cmAnsiToKoi8R), cmKoi8RToAnsi);
end;
Ïðîåêò Delphi World © Âûïóñê 2002 - 2004
Àâòîð ïðîåêòà: ___Nikolay