Страница 1 из 2

Извлечение подстроки

Добавлено: Сб янв 06, 2018 3:12 pm
porqes
Добрый день.
Пытаюсь излечь программно подстроку, содержащую символы после "№".
Выдает впереди полученной подстроки "?"
В чем может быть дело?

Re: Извлечение подстроки

Добавлено: Сб янв 06, 2018 4:49 pm
admin
Потому что текст в кодировке UTF8, символы которого могут быть больше одного байта. Используйте функции UTF8...

Re: Извлечение подстроки

Добавлено: Сб янв 06, 2018 6:02 pm
porqes
Спасибо, все понятно. С учетом http://forum.mydataexpress.ru/viewtopic.php?t=1593

Re: Извлечение подстроки

Добавлено: Сб янв 06, 2018 11:39 pm
porqes
Далее: Извлекаемая подстрока присваивается значению объекта. Значение-то присваивается, но не "привязывается" к объекту. Как это сделать и вытащить значения других полей данного объекта?

Re: Извлечение подстроки

Добавлено: Вс янв 07, 2018 8:33 am
jurist23rus
Поле "Объект" не хранит никаких значений, он хранит идентификатор (ID записи) связанной формы. Вы же пытаетесь объекту "навязать" какое-то значение - он вас не понимает.
porqes писал(а):Как это сделать и вытащить значения других полей данного объекта?

Не понимаю вопроса. Куда вытащить?

Re: Извлечение подстроки

Добавлено: Вс янв 07, 2018 5:11 pm
porqes
Не знаю как установить KeyValue.
Пробовал так:

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

dxLookupComboBox1.ItemIndex := dxLookupComboBox1.Items.IndexOf(UTF8Copy(dxEdit1.Text, j, y+1-j))

Не находит...

Re: Извлечение подстроки

Добавлено: Вс янв 07, 2018 6:58 pm
jurist23rus
Что вы мучаетесь!? Создайте форму на которую ссылается Объект и работайте с ней спокойно - там кода на три строки.

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

var
   Fm: TdxForm;
begin
   try
      Fm := TdxForm.Create ('Та самая форма на которую ссылается объект');
      Fm.Open;
      //делайте с данными что хотите
   finally
      Fm.free;
   end;
end;

Re: Извлечение подстроки

Добавлено: Вс янв 07, 2018 8:03 pm
admin
porqes писал(а):Не знаю как установить KeyValue.
Пробовал так:

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

dxLookupComboBox1.ItemIndex := dxLookupComboBox1.Items.IndexOf(UTF8Copy(dxEdit1.Text, j, y+1-j))

Не находит...

Работайте с полями формы, а не с компонентами. Присвоить ID объекту очень просто: Self['объект'] := ID. ID можно получить, используя TdxSQLQuery или EvalExpr и функции выражений, или взяв ID из другого объекта.

Re: Извлечение подстроки

Добавлено: Вс янв 07, 2018 11:40 pm
porqes
Спасибо, через запрос вроде получилось. Но опять же присваивал значение dxLookupComboBox1.keyvalue.

Re: Извлечение подстроки

Добавлено: Пн янв 08, 2018 9:38 am
admin
porqes писал(а):Спасибо, через запрос вроде получилось. Но опять же присваивал значение dxLookupComboBox1.keyvalue.

admin писал(а):Работайте с полями формы, а не с компонентами. Присвоить ID объекту очень просто: Self['объект'] := ID.