Форум » [x]Harbour » Преобразование текстового файла в HTML » Ответить

Преобразование текстового файла в HTML

azoo: Пользователям нужно просматривать отчеты в текстовых файлах, сформированных программой. Есть ли функция для xHarbour, преобразующая TXT в HTML с приблизительным сохранением форматирования ?

Ответов - 14

Dima: [pre2] ? "<HTML>" ? '<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />' ? '<FONT "Lucida Console" SIZE=4>' ТУТ ТВОЙ ТЕКСТ ? "</HTML>" [/pre2] Не ?

azoo: Dima, как бы так, но в тексте переводы строки, отступы, пробелы между словами и т.д. Получается надо все эти тэги вручную прописывать.

Andrey: azoo пишет: Получается надо все эти тэги вручную прописывать. Нужно тогда самому писать эту функцию или ставь вызов внешней программы - поиск в гугле по слову txt2html !


Dima: azoo пишет: Получается надо все эти тэги вручную прописывать. А я понял. Тебе нужно перегнать TXT файл в HTML.

Dima: а если так ? [pre2] proc main() set alternate on set alternate to ("test.htm") ? "<HTML>" ? '<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />' ? '<FONT "Lucida Console" SIZE=4>' // вот тут надо найти правильный тэг HTML который не позволит жрать отступы if ft_fuse("mytest.txt")#-1 do while !ft_feof() ? '<BR>' ? ft_freadln() ft_fskip() enddo ft_fuse() endif ? "</HTML>" ? close alter set alter off return [/pre2]

Dima: Dima пишет: // вот тут надо найти правильный тэг HTML который не позволит жрать отступы <plaintext> но тогда строка ? '<BR>' не нужна и в конце его надо закрыть </plaintext>

azoo: Dima, пример рабочий, только форматирование не ловит (пробелы внутри строки) Что касается plaintext, то этот вариант хорош всем, кроме того, что браузеры не реагируют на закрывающий тэг. Вместо него используем пару <pre> </pre> и всё отлично ! Т.е. преобразование txt в html сводится к добавлению заголовка <HTML> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> <FONT "Lucida Console" SIZE=4> Затем <pre> наш текст и </pre> </html>

Dima: azoo чёж не ловит если ловит. вот мой сформированный HTML [pre2] <HTML> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> <FONT "Lucida Console" SIZE=6> <plaintext> ;SKLAD [DRIVES] N:=\\127 . 0 . 0 .1\sklad$\ [MYSERVER] LAN_IP=127.0.0.1 LAN_PORT=6262 ROOT_PATH=C:\WORK\SKLAD\SKLAD.ADS\kolbASA\adsklad\ [SETTINGS] ADS_SERVER_TYPE=2 MAX_CONNECTIONS=100 COMPRESSION=Always </plaintext> </HTML> [/pre2] все пробелы на месте

azoo: Dima имелся в виду пример с <BR>, а c <plaintext> согласен всё хорошо, кроме закрывающего тега. Поэтому используем <pre> вместо <plaintext>

Dima: Да согласен <pre> более гибкий. [pre2] Элемент <PRE> определяет блок предварительно форматированного текста. Такой текст отображается обычно моноширинным шрифтом и со всеми пробелами между словами. По умолчанию, любое количество пробелов идущих в коде подряд, на веб-странице показывается как один. Тег <PRE> позволяет обойти эту особенность и отображать текст как требуется разработчику. В отличие от тега <PLAINTEXT>, использование которого осуждается в HTML 4, внутри контейнера <PRE> допустимо применять любые теги. [/pre2]

azoo: Ещё вопрос. Текст для преобразования в HTML в DOS-кодировке. Как лучше преобразовать в Windows-1251 ?

Andrey: azoo пишет: Как лучше преобразовать в Windows-1251 ? HB_OEMTOANSI(cText) -> текст 1251

nick_mi: вместо charset=windows-1251 написать charset=cp866 и не надо перекодировать

azoo: nick_mi, так что-то не работает. Я сделал преобразование таким образом: str1w := HB_TRANSLATE(str1, "RU866", "RU1251")



полная версия страницы