Hallo Leute,
Ich habe mir folgende Prozedur geschrieben, welche alle Wörter in einem bestimmten Charset aus einem Text extrahiert.
Delphi-Quellcode:
type
SetOfChar = Set of Char;
procedure ExtractWords(const AText: string;
AMinLength, AMaxLength: Integer;
AAllowedChars: SetOfChar;
AWords: TStrings);
var
i, iLength: Integer;
sWord : string;
begin
i := 0;
while i < Length(AText) do
begin
Inc(i);
if AText[i] in AAllowedChars then
begin
sWord := '';
repeat
sWord := sWord + AText[i];
Inc(i);
until not (AText[i] in AAllowedChars);
iLength := Length(sWord);
if ((AMinLength = 0) or (iLength >= AMinLength)) and
((AMaxLength = 0) or (iLength <= AMaxLength)) then
AWords.Add(sWord);
end;
end;
end;
Funktioniert, aber ist bei großen Texten etwas langsam, hat jemand eine Idee, wie man das ganze bescheunigen bzw. optimieren kann?