ICQ History

Воскресенье, 25 августа 2002 г.
Просмотров: 408
Подписаться на комментарии по RSS

Письмо:
Здравствуйте, Asechka.ru!
Хотел поделиться с Вами небольшой программкой, которая хорошо дополнит возможности Icq history reader by A3oX v1.7 и его GUI. Программку эту мне пришлось написать из жизненной необходимости smile. Общался я как-то с человеком из USA, а у него винда английская была. И поэтому у него постоянно были какие-то проблемы с отображением русского шрифта. То он отображался, то нет... А потом мне в руки попал его UIN.DAT файл. Ну, мне естественно захотелось его преобразовать в HTML с помощью Icq history reader by A3oX v1.7. grin И каково же было мое разочарование, когда я увидел, что его сообщения видны, а сообщения его собеседника заменены везде на "??????? ??? ?????" :-(. При дальнейшем рассмотрении я увидел, что они были такими в dat файле. Однако сразу за этими сообщениями шел их RTF эквивалент, который был нормальным. Но Icq history reader by A3oX v1.7 этого эквивалента не видел :(. Попытки "восстановить" такой dat файл с помощью DBConverter тоже успехов не принесли :( А прочитать файл страсть как хотелось. А файл был большой, и исправлять его вручную было бы очень и очень долго... Пришлось взяться за Borland Pascal и написать эту программку. Она ищет в dat файле последовательность "??", и если она является сообщением, то следующий за ней RTF эквивалент выводится в специальный файл message.rtf. Далее этот файл мы открываем любым текстовым редактором (например Word), и сохраняем как "Только текст" с именем message.txt. После этого снова запускаем программку, и она записывает полученные таким преобразованием сообщения на место "??" в dat файл по нужным адресам. В результате получается полноценный хистори, который можно конвертить в HTML с помощью Icq history reader by A3oX v1.7. Какова же была радость, когда вместо вопросиков я увидел нормальные сообщения smile Впрочем, подробная инструкция есть в прилагаемом исходнике icq-rec.pas. Да, поскольку прога пользует Паскальный модуль CRT, который имеет баг вылетания с ошибкой деления на ноль "Runtime error 200 at XXXX:XXXX" на процессорах выше пентиум, екзешник после компиляции был обработан патчем pasp2fix.com, этот баг CRT исправляющий. Он правит пару байт в екзешнике, после чего баг исчезает... Патч также прилагается. А еще мне в этой HTML-ке не понравился тот факт, что IE очень долго пытался определить, каким набором символов ее открывать, и после долгих раздумий все равно кириллицы не показал :( Пришлось лезть в "Вид/Вид кодировки" и менять принудительно на "Кириллица Windows". В связи с этим предлагаю сразу после создания HTML-ки вставлять мета-тег между <HEAD> </HEAD> , который выглядит так:<meta http-equiv=Content-Type content="text/html; charset=windows-1251"> . Он будет принудительно устанавливать кириллицу и IE не будет тормозить при его открытии grin! Вот и все усовершенствования. Надеюсь, кому-то пригодится smile

Илья, (iiy2@mail.ru)

Ссылки
[li]архив: pasp2fix.com, icq-rec-exe, pkunlite.exe, head.htm, icq-rec.pas, p_ii_fix.txt
[li] icq history reader
[li] GUI