Guten Morgen, ich habe gerade ein Problem, mit dem ich mich an Euch wende.
Hat jemand eine elegantere Lösung? Insbesondere der Sonderfall gefällt mir nicht.
Die Funktion gibt mit ToList(h) das Wort aus dem Satz in eine TStringList.
Das letzte Wort wurde nicht gelesen, somit habe ich den Sonderfall eingebaut.
Geht es nicht eleganter/schneller?
Delphi-Quellcode:
Function ParseString(var s:String):Boolean;
CONST Letters :set of Char =['0'..'9','A'..'Z','a'..'z'];
Var h:String;
i:Integer;
flag:Boolean;
begin
result:=False;
H:='';
//Space am Anfang und Ende entfernen?
Trim(S);
if S=''then exit;
Flag:=False;
for i:=1 to length(s) do
begin
if S[i] in Letters then
begin
Flag:=True;
H:=H+S[i];
// Sonderfall: Sonst wird das letzte Wort nicht angezeigt
if I=length(s) then
begin
//showmessage(h);
ToList(H);//Wird in Liste hizugefügt, wenn nicht vorhanden
Flag:=false;
h:='';
end;
// Sonderfall Ende
end
else
if Flag=true then
begin
//showmessage(h);
ToList(H);
Flag:=false;
h:='';
end;
end;
end;
Weiß wer was (www)?