uses
StrUtils;
// для Win32 созданный экземпляр TStringList нужно уничтожать Free методом
// в .NET среда сама его может угробить
// это просто пример - в твоём коде вызов Result.Add можно заменить на передачу строки
// некой обрабатывающей процедуре.
function Explode(const delim, str: string): TStringList;
var offset: integer;
cur: integer;
dl: integer;
begin
Result:=TStringList.Create;
dl:=Length(delim);
offset:=1;
while True do begin
cur:=PosEx(delim, str, offset);
if cur > 0 then
Result.Add(Copy(str, offset, cur - offset))
else begin
Result.Add(Copy(str, offset, Length(str) - offset + 1));
Break
end;
offset:=cur + dl;
end;
end;
Работа со строками
Эта функция разбивает строку $stroka на массив подстрок $arrayOfStr, деля исходную строку в тех местах, где расположена строка (символ) $delimiter.
Вопрос 1: Я хотел спросить - есть ли в Delphi подобная функция или как её реализовать.
Вопрос 2: В общем есть такая фишка - текстовая БД. Мне из неё надо список с SQL запросами надо сделать. Вид строк в текстовой БД примерно такой:
Данные1|данные2|данные3|и т.д.|данные_n
На первый вопрос ответите, то будет понятно, как поделить данные друг от друга, но там другая проблема.
Каждый блок данных находится в отдельной строке, т.е.:
Данные1|данные2|данные3|и т.д.|данные_n
Данные1|данные2|данные3|и т.д.|данные_n
Данные1|данные2|данные3|и т.д.|данные_n
Загвоздка в том, что некоторые строки размером больше, чем 1024 символа и поэтому они разбиты на 2 строки. Вот я и думаю - как их объединять. Ведь из каждой строки формируется отдельный SQL запрос...
Заранее ОГРОМНОЕ СПАСИБО!
Код:
По вопросу обработки строк могу сказать только то, что нужно смотреть сколько вообще столбцов в БД. а потом их выбирать последовательно.