Перекодировка текста из Win кодировки в КОИ-8 и обратноDelphi , Синтаксис , Преобразования
Автор: Balu { **** UBPFD *********** by delphibase.endimus.com **** >> Зависимости: НЕТ :-) Автор: Balu, balusoft@mail.ru, Харьков Copyright: Balu Дата: 26 июня 2002 г. ***************************************************** } const Koi: array[0..66] of Char = ('T', 'Ё', 'ё', 'А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ж', 'З', 'И', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ъ', 'Ы', 'Ь', 'Э', 'Ю', 'Я', 'а', 'б', 'в', 'г', 'д', 'е', 'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ъ', 'ы', 'ь', 'э', 'ю', 'я'); Win: array[0..66] of Char = ('ё', 'Ё', 'T', 'ю', 'а', 'б', 'ц', 'д', 'е', 'ф', 'г', 'х', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'я', 'р', 'с', 'т', 'у', 'ж', 'в', 'ь', 'ы', 'з', 'ш', 'э', 'щ', 'ч', 'ъ', 'Ю', 'А', 'Б', 'Ц', 'Д', 'Е', 'Ф', 'Г', 'Х', 'И', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Я', 'Р', 'С', 'Т', 'У', 'Ж', 'В', 'Ь', 'Ы', 'З', 'Ш', 'Э', 'Щ', 'Ч', 'Ъ'); function WinToKoi(Str: string): string; var i, j, Index: Integer; begin Result := ''; for i := 1 to Length(Str) do begin Index := -1; for j := Low(Win) to High(Win) do if Win[j] = Str[i] then begin Index := j; Break; end; if Index = -1 then Result := Result + Str[i] else Result := Result + Koi[Index]; end; end; function KoiToWin(Str: string): string; var i, j, Index: Integer; begin Result := ''; for i := 1 to Length(Str) do begin Index := -1; for j := Low(Win) to High(Win) do if Koi[j] = Str[i] then begin Index := j; Break; end; if Index = -1 then Result := Result + Str[i] else Result := Result + Win[Index]; end; end; Пример использования: procedure TForm1.Button1Click(Sender: TObject); begin Memo1.Text := WinToKoi(Memo2.Text); end; procedure TForm1.Button2Click(Sender: TObject); begin Memo1.Text := KoiToWin(Memo2.Text); end; Приведенный код на Delphi предназначен для конвертации текста из Windows (CP-1251) в KOI-8 и обратно. Вот подробное описание кода: Определения массивов
В коде определены два массива:
Функции В коде определены две функции:
Процедура
Предоставленные процедуры ( Ограничения Код не обрабатывает ошибки или исключения. Если в ходе процесса перевода встречается недопустимый символ, он будет оставлен неизменным в строке вывода. Предложения по улучшению
В статье описана реализация функций WinToKoi и KoiToWin для перекодировки текста из Win кодировки в КОИ-8 и обратно, написанных на Delphi. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: Преобразования ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |