delphi разбить строку по разделителю



Автор Мирослав Воеводин задал вопрос в разделе Другие языки и технологии

Delphi!? Как разбить строку на строки (внутри подробней)? и получил лучший ответ

Ответ от Доминатор[гуру]
Разбиение на слова:
i := 1;
j := 1;
flag := false;
For i := 1 to length(MyStrk) do
begin
if MyStrk = ')' then
flag := true;
if (MyStrk <> ' ') and (flag) then
MyStrkOut[j] := MyStrkOut[j] + MyStrk [ i ];
if (MyStrk = ' ') and (flag) then
inc(j);
end;
Там где написано MyStrk должно быть дописано [ i ] (кроме 4 строки) , otvet.mail.ru не выводит правильно.
Код не проверял.
Просто берём кусок:
MyStrkOut[1] := copy(MyStrk, n, i)
n - элемент, с которого начинаем копирование.
i - сколько элементов копируем.
MyStrk - строка из которой копируем.
Доминатор
(4304)
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
MyStrk: string;
MyStrkOut: array[1..100] of string;
i, j: longint;
flag: boolean;
begin
reset(input, 'input.txt');
rewrite(output, 'output.txt');
readln(MyStrk);
i := 1;
j := 1;
flag := false;
For i := 1 to length(MyStrk) do
begin
if (MyStrk<i> <> ' ') and (flag) then
MyStrkOut[j] := MyStrkOut[j] + MyStrk<i>;
if (MyStrk<i> = ' ') and (flag) then
inc(j);
if MyStrk<i> = ')' then
flag := true;
end;
for i := 1 to j do
writeln(MyStrkOut<i>);
end.
</i></i></i></i></i>

Ответ от Dr.Drew[гуру]
эм.. . даже ничего в голову неприходит. цыфры еще думаю как-то можно регуляркой отловить, а вот остальное...

Ответ от Ним[гуру]
масив - это не Ъ. можно искать символ в строке через функу pos,он вернет позицию первого вхождения потом с помощъю delete можно удалить все до нужного символа а оставшуюся строку вывести.

Ответ от Sergey V. Voronin[гуру]
Тут хитрый парсинг: критерием парсинга будет пробел-цифра/цифра-пробел. Первую строку выкидываешь. И строковыми функциями не обойтись.

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: Delphi!? Как разбить строку на строки (внутри подробней)?
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*