Как соединить несколько строк в одну?
В текстовом файле расположены строки в таком виде:
>>>
Stroka1
Stroka2
Stroka3
>>>
>>>
Stroka4
Stroka5
Stroka6
Stroka7
>>>
Как соединить строки что между символами >>> в одну и между ними поставить точку. То есть результат должен получится:
>>>
Stroka1.Stroka2.Stroka3
>>>
>>>
Stroka4.Stroka5.Stroka6.Stroka7
>>>
Читала про функцию (Но я так понимаю что это идет соединение по ключевым словам):
result := Concat('Stroka1','Stroka2','Stroka3');
Ответы (2 шт):
Автор решения: Kromster
→ Ссылка
Простейший алгоритм же:
- Читаем файл построчно
- Если видим строчку, то дописываем её во временную переменную, через "точку"
- Если видим разделитель, то записываем в новый файл переменную из п.2 и записываем разделитель, и очищаем временную переменную.
- Остальные действия (начало или конец файла без разделителей, и т.п.) - по вкусу
Как соединять?
uses StrUtils;
...
s := s + IfThen(s <> '', '.') + newText;
Автор решения: Old Skull
→ Ссылка
Как вариант (если файл не гигантский)...
var
ts: TStringList;
s: string;
...
ts := TStringList.Create();
try
ts.LoadFromFile( 'c:\temp\lines.txt' );
s := StringReplace( ts.Text, ts.LineBreak, '.', [ rfReplaceAll ] );
s := StringReplace( s, '>>>.', '>>>' + ts.LineBreak, [ rfReplaceAll ] );
s := StringReplace( s, '.>>>', ts.LineBreak + '>>>', [ rfReplaceAll ] );
ts.Text := s;
ts.SaveToFile( 'c:\temp\lines-new.txt' );
finally
ts.Free();
end;
...