Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Как разбить строку на подстроки


Автор: G'Nor 26.12.2002, 23:32
192.168.99.254 - oleg [23/Dec/2002:21:15:12 +0300] "GET http://counter.rambler.ru/top100.cnt?294098 HTTP/1.0" 200 936

сгенерированная прокси сервером. мне надо написать прогу анализатор такого вот файла. соостветственно надо разбить строки на подстроки засунуть все в массив. а вот знаний моих пока на это не хватает. использую вот такой код

Код
        while NOT EOF(f) do begin
               readln(f,s);
               for i:=1 to n+1 do begin
               p:=pos(' ',s);
               buf:=copy(s,p+1,Length(s)-p);
               end;
               Memo1.Lines.Add(buf);
        end;

Но он выдирает только ip. а дальше не хочет.

Автор: Song 26.12.2002, 23:58
В лучшем случае у тебя цикл будет от 1 до 1

Автор: Vit 27.12.2002, 01:26
Код

procedure TForm1.Button1Click(Sender: TObject);
 var f:textfile;
     i:integer;
     s:string;
 function getbefore(substr, str:string):string;
 begin
  if pos(substr,str)>0 then
    result:=trim(copy(str,1,pos(substr,str)-1))
  else
    result:='';
 end;
 function getafter(substr, str:string):string;
 begin
  if pos(substr,str)>0 then
    result:=trim(copy(str,pos(substr,str)+length(substr),length(str)))
  else
    result:='';
 end;
begin
 AssignFile(f, 'F:\1\a');
 reset(f);
 while NOT EOF(f) do
   begin
     readln(f,s);
     Memo1.Lines.Add('IP: '+GetBefore('-',s));
     Memo1.Lines.Add('Name: '+GetBefore('[',GetAfter('-',s)));
     Memo1.Lines.Add('Time: '+GetBefore(']',GetAfter('[',s)));
     Memo1.Lines.Add('Request: '+GetBefore('"',GetAfter('"',s)));
     Memo1.Lines.Add('--------------');
   end;
 CloseFile(f);
end;




Автор: Black_Joker 3.1.2003, 02:00
Слушай, что-то я не понял, что ты хочешь?
Найти какой-то конкретный набор символов, или как?
Под конкретным понимаем более -менее подходящий под шаблоны.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)