Написал программу для создания DBF таблиц на Lazarus`e.
Далее работаю с этой таблицей в программе написанной на том же Lazarus`e.
Сейчас хочу распечатать эту DBF. Как добавить в программу функцию распечатывания, я не знаю, да и с принтером в Линуксе проблемы.
Решил конвертировать DBF во что-нибудь что прочитаеться офисом и печатать в винде на другой станции. Сконвертировал в Exel, но при открытии Exel-файла русские символы отображаються нечетаемыми символами. Как поменять кодировку, чтобы Exel-файл был читаем?
Прошу помощи у знатоков.
Заранее спасибо.
Кодировка DBF...
Модератор: Модераторы
viewtopic.php?f=5&t=4222
>Перед записью в базу данных преобразуйте строку при помощи функции UTF8ToAnsi или UTF8ToSys. И, наоборот, для отображения на форме используйте обратное преобразование AnsiToUTF8 или SysToUTF8.
Обалдеть, даже темы практически одинаково называются.
>Перед записью в базу данных преобразуйте строку при помощи функции UTF8ToAnsi или UTF8ToSys. И, наоборот, для отображения на форме используйте обратное преобразование AnsiToUTF8 или SysToUTF8.
Обалдеть, даже темы практически одинаково называются.
Проблема несколько отличаеться от Вашей, qivi, про 2 байта на символ я и так знал и предусмотрел это, а вот отображение данных из базы это другое. В линуксе программа отображает все отлично, но нет возможности печати, в винде при потытке открыть в чем либо нечитаемые символы. База уже готовая и вней даже не десятки строк.
А
я пологаю, подходит для внесения новых записей и их дальнейшего отображения.
А
qivi писал(а):viewtopic.php?f=5&t=4222>Перед записью в базу данных преобразуйте строку при помощи функции UTF8ToAnsi или UTF8ToSys. И, наоборот, для отображения на форме используйте обратное преобразование AnsiToUTF8 или SysToUTF8.
я пологаю, подходит для внесения новых записей и их дальнейшего отображения.
Код: Выделить всё
Сконвертировал в Exel, но при открытии Exel-файла русские символы отображаються нечетаемыми символами.Ну если Exel не понимает Utf8 сохраните в него данные в АНСИ при помощи UTF8ToAnsi.
Здесь много интересного http://wiki.freepascal.org/Lazarus_Tdbf_Tutorial/ru
viewtopic.php?t=652
а так же
dbf1.DbfFile.DbfVersion
dbf1.CodePage
Нужно изначально работать в кодировке win1251 для совместимости с виндой
Если надо на один раз, думаю openoffice можно заставить читать в utf8
viewtopic.php?t=652
а так же
dbf1.DbfFile.DbfVersion
dbf1.CodePage
Нужно изначально работать в кодировке win1251 для совместимости с виндой
Если надо на один раз, думаю openoffice можно заставить читать в utf8
Daniel писал(а):Написал программу для создания DBF таблиц на Lazarus`e.
Далее работаю с этой таблицей в программе написанной на том же Lazarus`e.
Откройте тайну, какая злая сила заставила вас работать с dbf файлами?
sign писал(а):Откройте тайну, какая злая сила заставила вас работать с dbf файлами?
Учебный материал такой.... я не выбирал... 8(
Добавлено спустя 4 минуты 19 секунд:
Наверняка же можно создать чистую DBF`ку с кодировкой под винду и скопировать в нее данные из моей DBF`ки с UTF8, так чтобы потом новая DBF`ка нормально открылась в винде для печати? Если можно то как?
Или такого пути решения проблемы нет?
Добавлено спустя 6 минут 15 секунд:
Может есть способ(утилита) сконвертировать линуксовую DBF`ку c UTF8, ну предположим, в PDF, а PDF уже распечатать... Просто на данный момент приоритетней получить данные из DBF`ки в бумажном виде...
Хранить данные в dbf не в ansi кодировке чревато. Excel подразумевает именно эту кодировку.
Вам уже дали дельный совет: перечитать данные построчно, перекодировать и сохранить в новом файле.
Если данные не являются тайной, то приаттачте файлик - посмотрю.
Вам уже дали дельный совет: перечитать данные построчно, перекодировать и сохранить в новом файле.
Если данные не являются тайной, то приаттачте файлик - посмотрю.
