![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
текст (пожалуйста помогите) [D5, WinXP]
mrAndersen © (2006-03-06 23:03:00)Буду краток. Есть текстовый файл, нужно удалить
символ который стоит после символа 5 но при этом, эти действия нужно производить только с текстом в скобках.
Пример программы (программа рабочая):
procedure TForm1.Button1Click(Sender: TObject);
var
F1,F2: TextFile;
a: String;
k,i,j1,j2:integer;
begin
AssignFile(F1,'D:\old\Delphi5_s\ses1.txt');
AssignFile(F2,'D:\old\Delphi5_s\ses2.txt');
reset(F1);
rewrite(F2);
begin
While Not EOF(F1) do begin
If Not EOLN(F1) then begin
Readln(F1,a);
k:=length(a);
j1:=pos( '(' ,a);
j2:=pos( ')' ,a);
for i:=j1 to j2 do
if a[i]='5' then Delete(a,i+1,1);
Write(F2,a);
end;
end;
end;
CloseFile(F1);
CloseFile(F2);
end.
Есть текстовый файл - ses1.txt, в котором есть такой текст:
кактус11(156111)1561бус1(1561осень11)15611...
при компиляции выходит:
ses2.txt - текстовый файл с таким текстом:
кактус11(15111)1561бус1(1561осень11)15611...
как Вы уже заметили, есть разница, но главный вопрос состоит в том, ЧТОБЫ ТЕКСТ ИЗМЕНЯЛСЯ У ВСЕХ СКОБКАХ, А НЕ ТОЛЬКО В ПЕРВОЙ.
Буду очень признателен за любые варианты решения этой задачи.
ANB (2006-03-07 01:28:00) [1]Вместо Pos используй сканирование в цикле посимвольно всей строки.
Алгоритм будет проще, но тормознутее, если ты будешь посимвольно копировать исходную строку в целевую, а уже целевую записывать в новый файл.