Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

запись в файл [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;


Наверх

Титульная страница Поиск, карта сайта Написать письмо