На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Rouse_, jack128, Krid
  
    > Перекодировка , из разных кодировок
      ExpandedWrap disabled
        unit ConvertEncodingUnit;
        interface
        type // Тип матриц перекодировки
          TCodeMatrix = array[1..255] of char;
        {******************************************************************************
        {ANSI, KOI8-R, KOI8-U, OEM/DOS, ISO
        В этой версии имеется 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
        ******************************************************************************}
           function ConvertEncoding(sIn: string; sCoding: string): string;
         
        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
          + '???????????????????????????????? ЁЂЃЄЅІЇЈЉЊЋЌ­ЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШ'
            + 'ЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя№ёђѓєѕіїјљњћќ§ўџ';  
         
        implementation
         
        function ConvertEncoding(sIn: string; sCoding: string): string;
        //sIn - строка для перекодирования
        //sCoding - матрица для перекодирования
        //result - полученная перекодированная строка
        var
          iFtd: integer;
        begin
          Result:='';
          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
        {******************************************************************************}
        end.


      использование: ConvertEncoding(aSource, cmKoi8RToAnsi );

      с тебя плюс.

      Эта тема была разделена из темы "Перекодировка из разных чарсетов"
        M
        Тема перенесена из Delphi FAQ -> Интернет, сети, протоколы
        0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
        0 пользователей:


        Рейтинг@Mail.ru
        [ Script execution time: 0,0237 ]   [ 16 queries used ]   [ Generated: 16.04.24, 17:16 GMT ]