Универсальное и быстрое перекодирование строки из кодировок ANSI, KOI8-R, KOI8-U, OEM-DOS, ISODelphi , Синтаксис , ПреобразованияУниверсальное и быстрое перекодирование строки из кодировок ANSI, KOI8-R, KOI8-U, OEM-DOS, ISO Автор: VEG { **** 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; Статья Универсальное и быстрое перекодирование строки из кодировок ANSI, KOI8-R, KOI8-U, OEM-DOS, ISO раздела Синтаксис Преобразования может быть полезна для разработчиков на Delphi и FreePascal. Комментарии и вопросы:: 2010-06-28 11:42:47 :: re:Универсальное и быстрое перекодирование строки из кодировок ANSI, KOI8-R, KOI8-U, OEM-DOS, ISOпользователь: Seka. Супер! Коротко и быстро. Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: Преобразования ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |