Консультация № 193870
10.11.2018, 00:40
0.00 руб.
0 3 0
Здравствуйте! Прошу помощи в следующем вопросе:

Lazarus. Windows платформа (только). Вопрос про DBF.
Хочу открыть список файлов с расширением DBF, выбрать по имени и открыть на редактирование (естественно не зная и не описывая его структуру). Редактировать размер полей, имена полей, выбранные записи средствами Lazarus (v1.2, v1.4) и кодировку файла DBF (866,1251). При этом на текст в текстовом поле не должно отводиться двойное место в расчете на перекодировку.

Вопрос-дайте пример программы для решения аналогичной задачи. Надеюсь, что такой имеется.
Без использования сторонних приблуд или установки чего либо кроме исполнимого EXE-файла.

То есть пример должен уметь читать из открываемого файла его кодировку, структуру и уметь корректно экранно редактировать тексты в полях DBF без удвоения длинны или потери информации при перекодировках.

Ничего из этого у меня корректно работать не желает. Я - новичек в программировании на Lazarus.

Обсуждение

давно
Посетитель
402440
1
13.11.2018, 04:49
общий
М-м, да. Наверное вопрос оказался слишком сложный для местных экспертов. Или эксперты перевились.
Давайте, хотя бы по частям.
1. Как средствами Лазаруса (командой/функцией) считать кодировку текста у открываемого DBF (без бинарного чтения DBF файла)?
2. Как установить, что теперь сохранять в этот файл тексты нужно в кодировке ХХХ? На лету.
3. Как не дать текстовым полям в файле распухнуть после операции перекодировки и при этом не потерять половину текста?

Накопал нечто близкое, но не знаю как воспользоваться:
myTable.DbfFile.FileCodePage:=866 или cp866 или cp1251
или обратно
s:= myTable.DbfFile.FileCodePage; и что вернёт? Цифру? Строку?
В какое место воткнуть в программе? Уже должно быть чтото сделано? Активация, открытие?
Есть примеры?

4 Как сделать, чтоб перекодировались не поля DBF, а в момент переноса данных из файла в экранную таблицу с удвоенной длинной каждого текстового поля?
4.1 И обратно, разумеется. При модификации/добавлении и без потери половины русского текста, но с половинной длинной. Т.е. обратно, в свой прежний размер поля.

5. ... Вопросов много. Что толку их озвучивать, если ответами не пахнет?
Я что? Спросил не так или не то? Хоть что нибудь!
давно
Старший Модератор
31795
6196
13.11.2018, 10:33
общий
Адресаты:
Цитата: wzn
М-м, да. Наверное вопрос оказался слишком сложный для местных экспертов. Или эксперты перевились.

1)Не у всех есть Лазарус под рукой, тот комп, на котором у меня он стоит, сейчас мне не доступен.
2)Работа с базами, это можно сказать отдельная ветка программирования в Паскале.
3)
Цитата: Сорокин А.В. - Delphi. Разработка базы данных
На сегодняшний день существует множество технологий доступа к данным, таких как BDE, OLE, ODBC, ADO, и до сих пор разрабатываются новые, более надежные, удобные в работе и более быстродействующие технологии.

4)Почитайте это и это.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Старший Модератор
31795
6196
16.11.2018, 20:15
общий
Адресаты:
Что нить ответите?
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

Форма ответа