Кодировка DBF...

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Кодировка DBF...

Сообщение Daniel » 17.01.2012 09:04:23

Написал программу для создания DBF таблиц на Lazarus`e.
Далее работаю с этой таблицей в программе написанной на том же Lazarus`e.

Сейчас хочу распечатать эту DBF. Как добавить в программу функцию распечатывания, я не знаю, да и с принтером в Линуксе проблемы.
Решил конвертировать DBF во что-нибудь что прочитаеться офисом и печатать в винде на другой станции. Сконвертировал в Exel, но при открытии Exel-файла русские символы отображаються нечетаемыми символами. Как поменять кодировку, чтобы Exel-файл был читаем?

Прошу помощи у знатоков.
Заранее спасибо.
Daniel
незнакомец
 
Сообщения: 5
Зарегистрирован: 11.01.2012 10:39:27

Re: Кодировка DBF...

Сообщение qivi » 17.01.2012 10:10:33

viewtopic.php?f=5&t=4222
>Перед записью в базу данных преобразуйте строку при помощи функции UTF8ToAnsi или UTF8ToSys. И, наоборот, для отображения на форме используйте обратное преобразование AnsiToUTF8 или SysToUTF8.

Обалдеть, даже темы практически одинаково называются.
Аватара пользователя
qivi
энтузиаст
 
Сообщения: 703
Зарегистрирован: 19.01.2009 13:45:54
Откуда: Россия

Re: Кодировка DBF...

Сообщение Daniel » 17.01.2012 13:48:20

Проблема несколько отличаеться от Вашей, qivi, про 2 байта на символ я и так знал и предусмотрел это, а вот отображение данных из базы это другое. В линуксе программа отображает все отлично, но нет возможности печати, в винде при потытке открыть в чем либо нечитаемые символы. База уже готовая и вней даже не десятки строк.
А
qivi писал(а):viewtopic.php?f=5&t=4222>Перед записью в базу данных преобразуйте строку при помощи функции UTF8ToAnsi или UTF8ToSys. И, наоборот, для отображения на форме используйте обратное преобразование AnsiToUTF8 или SysToUTF8.

я пологаю, подходит для внесения новых записей и их дальнейшего отображения.
Daniel
незнакомец
 
Сообщения: 5
Зарегистрирован: 11.01.2012 10:39:27

Re: Кодировка DBF...

Сообщение qivi » 17.01.2012 20:15:30

Код: Выделить всё
Сконвертировал в Exel, но при открытии Exel-файла русские символы отображаються нечетаемыми символами.


Ну если Exel не понимает Utf8 сохраните в него данные в АНСИ при помощи UTF8ToAnsi.
Аватара пользователя
qivi
энтузиаст
 
Сообщения: 703
Зарегистрирован: 19.01.2009 13:45:54
Откуда: Россия

Re: Кодировка DBF...

Сообщение Ism » 18.01.2012 02:14:01

Здесь много интересного http://wiki.freepascal.org/Lazarus_Tdbf_Tutorial/ru

viewtopic.php?t=652

а так же
dbf1.DbfFile.DbfVersion
dbf1.CodePage

Нужно изначально работать в кодировке win1251 для совместимости с виндой

Если надо на один раз, думаю openoffice можно заставить читать в utf8
Ism
энтузиаст
 
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Re: Кодировка DBF...

Сообщение sign » 18.01.2012 07:52:50

Daniel писал(а):Написал программу для создания DBF таблиц на Lazarus`e.
Далее работаю с этой таблицей в программе написанной на том же Lazarus`e.

Откройте тайну, какая злая сила заставила вас работать с dbf файлами?
sign
энтузиаст
 
Сообщения: 1131
Зарегистрирован: 30.08.2009 09:20:53

Re: Кодировка DBF...

Сообщение Daniel » 19.01.2012 06:45:27

sign писал(а):Откройте тайну, какая злая сила заставила вас работать с dbf файлами?

Учебный материал такой.... я не выбирал... 8(

Добавлено спустя 4 минуты 19 секунд:
Наверняка же можно создать чистую DBF`ку с кодировкой под винду и скопировать в нее данные из моей DBF`ки с UTF8, так чтобы потом новая DBF`ка нормально открылась в винде для печати? Если можно то как?
Или такого пути решения проблемы нет?

Добавлено спустя 6 минут 15 секунд:
Может есть способ(утилита) сконвертировать линуксовую DBF`ку c UTF8, ну предположим, в PDF, а PDF уже распечатать... Просто на данный момент приоритетней получить данные из DBF`ки в бумажном виде...
Daniel
незнакомец
 
Сообщения: 5
Зарегистрирован: 11.01.2012 10:39:27

Re: Кодировка DBF...

Сообщение Light13 » 19.01.2012 10:53:48

Хранить данные в dbf не в ansi кодировке чревато. Excel подразумевает именно эту кодировку.
Вам уже дали дельный совет: перечитать данные построчно, перекодировать и сохранить в новом файле.

Если данные не являются тайной, то приаттачте файлик - посмотрю.
Аватара пользователя
Light13
постоялец
 
Сообщения: 127
Зарегистрирован: 17.07.2009 07:50:10
Откуда: Челябинск


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 247

Рейтинг@Mail.ru