Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 10 декабря!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

БОЛЬШОЙ FAQ ПО DELPHI



Как заставить работать BDE с русским текстом в кодировке?

Здесь будет описана методика превращения набора символов BDE 5.01, скажем, dBase 868, в набор символов ISO 8859-5.

Методика такая:

Открываем charset.cvb любым hex editor-ом;
Ищем строку "868";
Находится строка "BTCVD4868" - именно то, что надо;
Прокручиваемся вниз. Сначала будет много $FF, потом пойдет весь набор символов разделенный нолями: 00 00 01 00 02 00 03 00 и т. д.;
Это таблица перекодировки ANSI -> OEM для 868 кодовой страницы;
После 7E 00 7F 00 пропускаем 96 байт (2 байта на символ, буквы в ISO начинаются с $B0, $B0 - $80 = $30, $30 * 2 = $60, $60 = 96);
Запоминаем это смещение (у меня оно $ED72h);
Ищем строку "866". Находим "BTCVD2866";
Прокручиваемся вниз, пропускаем $FF, находим набор символов, как в п.4;
Находим последовательность 7E 00 7F 00;
Отмечаем дальнейшую последовательность от 10 04 11 04 12 04 до 3D 04 3E 04 3F 04;
Копируем ее на смещение из п.7;
Повторяем п.4;
Прокручиваемся дальше, за таблицу ANSI -> OEM, там опять будет много $FF, после них будет обратная таблица перекодировки OEM -> ANSI, такая же, как и в п.4;
Ищем последовательность 7E 00 7F 00, пропускаем после нее $150 байт (установлено методом научного тыка), начиная с этого смещения (у меня $F486) заносим байты B0 00 B1 00 B2 00 .... ED 00 EE 00 EF 00;
Все. Далее указываем dBase BUL 868 для langdriver-а BDE-шного алиаса.
При открытии таблицы с этого алиаса она будет перекодироваться OEM (то есть ISO) <-> ANSI.

Konstantin Popenko
2:5040/31.13



<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ



Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS