Hallo zusammen,
ist ja richtig was los hier.
wie ja schon mehrmals angemerkt wurde ist
Delphi-Quellcode:
function gibmirLemma(s:string; sep:char) :string;
var
t: Tstringlist;
begin
//hier muss jetzt das zweite Wort rausgefiltert werden
t:= tstringlist.create;
try
extractstrings([char(sep)], [' '], pchar(s), t);
result:= t.Strings[2];
finally
t.free;
end;
end;
nicht so optimal.
wie wäre denn z.B. so etwas:
Delphi-Quellcode:
function gibmirLemma(s:string; sep:char) :string;
var
pp : integer;
begin
result:='';
//hier muss jetzt das zweite Wort rausgefiltert werden
pp:=pos(sep,s);
if pp>0 then begin
pp:=posex(sep,s,pp+1);
if pp>0 then
result:= copy(s,pp+1,255);
end;
end;
@reinhard
Auch wenn ich Dir im Prinzip zustimme, TStringlist ist einfach genial, besonders wenn die Verarbeitung ein satz vor zwei Satz zurück, einen löschen läuft.
Wenn es wirklich nur darum geht (und das hab ich noch nicht erkannt) einen Satz nach dem anderen zu lesen, zu filetieren und dann wegzuschreiben/an einen String anzuhängen würde ich Dich inhaltlich voll unterstützen.
und verlier bitte den Unterschied nicht aus den Augen:
Delphi-Quellcode:
var
sl=tstringlist;
sl:=tstringlist.create;
...
sl.loadfromfile('MeineDaten');
for i:=0 to sl.count-1 do
irgendwas
sl.free;
Delphi-Quellcode:
var
f : textfile;
buffer : array [0..8191] of byte;
satz : string
assign(f,'MeineDaten');
settextbuf(f,buffer,sizeof(buffer));
reset(f);
repeat
readln(f,satz);
machwwasmitsatz
unil eof(f);
closefile(f);
Die zweite Möglichkeit ist doch wesentlich aufwendiger.
Gruß
K-H