TDbf и OnTranslate

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

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

Re: TDbf и OnTranslate

Сообщение *Rik* » 29.11.2013 16:12:43

Скажите, TDBF кто-нибудь победил? Могу предложить свой вариант. Я клонировал TDBF в TxDBF (TDBF я брал не оригинальную а уже чью-то версию, которую уже до меня кто-то клонировали под Unicod Delphi 2009) . Я адаптировал (малость кастрировал) её для работы с кодовыми страницами cp866 и win1251 в Lazarus, всё кроссплатформенно, пробовал на Win и Linux. Если кодировка указана в файле, берет оттуда, если нет, использует DBFGlobals.DefaultOpenCodePage. На строковые поля устанавливает Transliterate:= true и гонит всё оттуда в UTF-8 при чтение и обратно из UTF-8 в нативную при записи, внутри самой компоненты. Ещё на TFloatField прописал DisplayMask в зависимости от Precission.
Кому нада сеё поделие?
Аватара пользователя
*Rik*
постоялец
 
Сообщения: 451
Зарегистрирован: 19.04.2011 12:18:51
Откуда: Урал

Re: TDbf и OnTranslate

Сообщение hovadur » 29.11.2013 17:41:52

конечно, выкладывай, посмотрим совпадает ли твоя работа с моей :)
hovadur
постоялец
 
Сообщения: 116
Зарегистрирован: 31.01.2013 15:50:41

Re: TDbf и OnTranslate

Сообщение *Rik* » 29.11.2013 17:42:50

TxDBF можно взять здесь:

http://www.visual-t.ru/index.php/skachat
Компонента устанавливается в Data Access.

Пример прилагается (..\TxDBF\DBFTest).
Аватара пользователя
*Rik*
постоялец
 
Сообщения: 451
Зарегистрирован: 19.04.2011 12:18:51
Откуда: Урал

Re: TDbf и OnTranslate

Сообщение DYUMON » 29.11.2013 19:24:21

как вариант патчи сами файлы dbf , там они зачастую без указания кодировки . я так менял
Код: Выделить всё
var
fs: TFileStream;
b:Byte;
begin
b:=$65;
fs:=TFileStream.Create('d:\bnkseek.dbf' , fmOpenReadWrite);
fs.Seek(29,soBeginning);
fs.Write(b, 1);
fs.Free;
Аватара пользователя
DYUMON
постоялец
 
Сообщения: 234
Зарегистрирован: 11.03.2009 13:32:54

Пред.

Вернуться в Lazarus

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

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

Рейтинг@Mail.ru