|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
31.08.2007, 14:03 | #1 |
Пользователь
Регистрация: 04.07.2007
Сообщений: 76
|
Кодировки
Как перевести текст из KOI-8 в ANSI?
Можно ли какой-нибудь стандартной командой? Или может есть спецальные компоненты?
http://wmhelpers.narod.ru/ - сайт программ, помогающими получить немного денег.
|
31.08.2007, 14:30 | #3 |
Старожил
Регистрация: 13.12.2006
Сообщений: 3,859
|
{ **** 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#1 5#16#17#18#19#20#21#22#23#24#25#26# 27#28+ #29#30#31' !"#$%&''()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQR STUVWXYZ[\]^' + '_`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;
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи |
31.08.2007, 21:54 | #4 |
Пользователь
Регистрация: 04.07.2007
Сообщений: 76
|
_SERGEYX_, спасибо. Но думаю то что Квэнди посоветовал будет немного лучше.
Пытался разобраться, но так и не понял куда это нужно записать? Код:
http://wmhelpers.narod.ru/ - сайт программ, помогающими получить немного денег.
|
01.09.2007, 01:18 | #5 | |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
в разделы type и const куда же еще
Цитата:
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог |
|
01.09.2007, 21:39 | #6 |
Пользователь
Регистрация: 04.07.2007
Сообщений: 76
|
Сначала в type к процедурам скопировал, а там ошибку выдавало. Оказывается в новые записать надо было.
Даже не знаю как так получилось Со всем теперь разобрался. Спасибо!
http://wmhelpers.narod.ru/ - сайт программ, помогающими получить немного денег.
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Кодировки | BOBAH13 | Общие вопросы Delphi | 8 | 29.08.2008 14:20 |
Считывание из файла, для определения кодировки | Arteom | Общие вопросы Delphi | 6 | 04.05.2008 10:11 |
Проблема кодировки DBF из foxpro | djinni | БД в Delphi | 6 | 29.01.2008 14:36 |
Помогите-кодировки в IdPOP3 | linker13 | Работа с сетью в Delphi | 1 | 08.12.2007 18:11 |