Marcos, Fazer o que vc precisa é muito fácil. Uma dica seria a seguinte, pega essa string e quebre em campos separados por espaços. Por exemplo:
FRASE PARA DEMONSTRACAO. Essa frase ficaria numa Stringlist assim: Stringlist[0] := FRASE Stringlist[1] := PARA Stringlist[2] := DEMONSTRACAO Assim fica fácil :) Segue a funcao para quebra. ////************************************************** FUNCTION QuebraStr(BaseString, BreakString: STRING; StringList: TStringList): TStringList; VAR EndOfCurrentString: byte; BEGIN REPEAT EndOfCurrentString := Pos(BreakString, BaseString); IF EndOfCurrentString = 0 THEN StringList.add(BaseString) ELSE StringList.add(Copy(BaseString, 1, EndOfCurrentString - 1)); BaseString := Copy(BaseString, EndOfCurrentString + length(BreakString), length(BaseString) - EndOfCurrentString); UNTIL EndOfCurrentString = 0; result := StringList; END; ////************************************************** Pra usar faça assim: Var St : TStringList; Linha : String; cIp, cUrl, cData, cHora : String Begin St := TStringList.Create; St := QuebraStr( SuaStringDeLog, ' ', St); cIp := St[x]; cUrl := St[y]; cData := St[z]; St.Free; End; É mais ou menos isso Ps. Nao testei o fonte que coloquei aqui entao é possivel que tenha erros, mas é só verificar os erros e usar ok? []Os Joel