Форум: "Основная";
Текущий архив: 2003.05.22;
Скачать: [xml.tar.bz2];
ВнизРазбить строку на символы Найти похожие ветки
← →
Лесник (2003-05-10 20:42) [0]Привет знатокам. Столкнулся со следующей проблемой. В Edit"e или DBEdit"e это без разницы выводиться строка (например фамилия) надо эту строку разбить на символы и каждому символу присвоить свою переменную, для последующей передачи этих переменных в отчет (freereport), в отчете фамилия выводиться следующим образом - каждая буква в своей клеточке (а клеточек например 20)можно сделать это через copy
var b,b1,b2,b3,b4:string;
....
b:=edtLastName.Text;
b1:=Copy(b,1,1);
b2:=Copy(b,2,1);
b3:=Copy(b,3,1);
b4:=Copy(b,4,1);
...
frVariables["b1"] :=b1;
frVariables["b2"] :=b2;
frVariables["b3"] :=b3;
frVariables["b4"] :=b4;
и так далее для всех двадцати полей, если бы это только для фамилии можно было бы мирится, но и еще кучу данных о персоне надо также разбить на символы. Получается очень длинный код. Знатоки поделитесь опытом как бы этот код можно было бы сократить.
Спасибо
← →
Song (2003-05-10 20:43) [1]Разделяй данные символом разделителем, который точно знаешь, что не может встретиться в описании поля, например "|", потом в TStrings запихай.
← →
Лесник (2003-05-10 20:50) [2]Но тогда возникнет проблема выполнения SQL запроса на отбор данных из НД, да и в других отчетах где не нужно разделение
← →
Song (2003-05-10 20:55) [3]После выполнения запроса разделишь их также.
← →
Vasiliy (2003-05-10 20:55) [4]Var I:Integer;
b:String;
b:=edtLastName.Text;
For I:=1 to Length(b) do frVariables["b"+IntToStr(I)] :=b[I];
Не уверен конечно что в frVariables можно комбинировать параметр, но вроде так должно работать
← →
Лесник (2003-05-10 21:33) [5]2 Vasiliy
Спасибо работает, правда есть одна неприятность - в самом отчете количество полей должно быть равным количеству букв в слове. Если больше то получается ошибка. Но это уже поборем. Главное что работает. Еще раз всем спасибо.
← →
Лесник (2003-05-10 21:37) [6]просто надо
Var I:Integer;
b:String;
b:=edtLastName.Text;
For I:=1 to 20 { Указать количество мемо полей в отчете} do frVariables["b"+IntToStr(I)] :=b[I];
и все проблемы
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.05.22;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.006 c