![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
запись в файл [D7, WinXP]
гость © (2004-12-07 17:16:00)Имеется строка вида 2*3+444*8+37*77+.......
вопрос.
Как найти в строке все * и числа стоящие перед * (2 444 37 и т.д.)записать в файл
1.txt через пробел.
begin...end (2004-12-07 19:31:00) [1]> гость (07.12.04 17:16)
uses StrUtils;
var
S: String;
I, J: Integer;
begin
S := '2*3+444*8+37*77+';
with TStringList.Create do
try
Delimiter := '*';
DelimitedText := S;
if Count > 0 then
Delete(Count - 1);
for I := 0 to Count - 1 do
for J := Length(Strings[I]) downto 1 do
if not (Strings[I][J] in ['0'..'9']) then
begin
Strings[I] := RightStr(Strings[I], Length(Strings[I]) - J);
Break
end;
SaveToFile('c:\1.txt')
finally
Free
end
end.
Александр Иванов (2004-12-07 17:33:00) [2]Примерно так:
try
String:=TStringList.Create;
index:=pos('*', Str);
while index<>0 do
begin
if index<>byte(Str[0]) then
Str:=Copy(Str,index+1,byte(Str[0])-index);
else Str:='';
i:=index-1;
buffer:='';
Sub := Copy(Str,1,index-1);
while (i <> 0) or (not Sub[i] in ['0'..'9','.']) do
begin
buffer:=buffer+Sub[i];
dec(i);
end;
Strings.Add(buffer);
index:=pos('*', Str);
end;
Strings.SaveToFile(FileName);
finally
Strings.Free;
end;