Перевод проекта Delphi на Lazarus

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

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

Аватара пользователя
dunin
энтузиаст
Сообщения: 634
Зарегистрирован: 02.05.2007 13:18:11
Откуда: Тољя††и
Контактная информация:

Сообщение dunin »

lemon писал(а):Привет , еще вопрос возник

При установке alexsDataSet_1_28\FBDataSet
идет сообщение

C:\lazarus_\lazarus_lib\FBDataSet\fbcustomdataset.pas(1,1) Fatal: Can't find unit jvuiblib used by fbcustomdataset

Как лечить ?

FBDataSet обновить надо бы... где alexs его прячет не помню - сам каждый раз, как приспичит, минут 15 на поиск трачу.

alexs, может поставишь как-нибудь себе в подпись где ПОСЛЕДНИЕ версии Rx и FBDataSet лежат?
Аватара пользователя
whs
новенький
Сообщения: 28
Зарегистрирован: 03.04.2010 18:07:44

Сообщение whs »

Vadim писал(а):
lemon писал(а):Какие это 5 строк и на чем ?

На том, что у Вас уже есть. :) Если Вы используете компонент TDbf, то перекодировка будет выглядеть примерно так:

Код: Выделить всё

Dbf1.First;
Dbf1.Edit;
For i:=0 To Dbf1.RecordCount-1 Do
  Dbf1.FieldByName('Текстовое_поле').AsString:=ConsoleToUtf8(Dbf1.FieldByName('Текстовое_поле').AsString);


Предварительно нужно выяснить коэффициент отношения максимальной длины строки, которая хранится в текстовом поле к длине самого поля. Если он больше, чем 1/2, то длину поля следует увеличить до соблюдения этого коэффициента, т.к. русский символ в кодировке UTF8 занимает 2 байта, а не один.


Сглупил, не мог понять почему этот код

Код: Выделить всё

 Dbf1.FieldByName('Текстовое_поле').AsString:=ConsoleToUtf8(Dbf1.FieldByName('Текстовое_поле').AsString);
в поле текст СКЛ01, а получал текст СК. Заменил на

Код: Выделить всё

 Dbf1.FieldByName('Текстовое_поле').Text:=ConsoleToUtf8(Dbf1.FieldByName('Текстовое_поле').AsString);
все ок
Ответить