Delphi-Quellcode:
var
I: Integer;
term:String;
found:Boolean;
begin
visibleChars := ['0'..'9','_','-', 'A'..'Z', 'a'..'z'];
s := '';
OpenDialog1.Execute;
AssignFile(stdIn, opendialog1.FileName);
Reset(stdIn);
AssignFile(output, ExtractFilePath(ParamStr(0))+'temp.txt');
Rewrite(output);
while not Eof(stdIn) do
begin
Read(stdIn, c);
if c in visibleChars then
s := s + c
else
if Length(s) >= MIN_LENGTH then
begin
Write(s);
s := '';
end;
end;
CloseFile(output);
CloseFile(stdIn);
memo1.Lines.LoadFromFile(ExtractFilePath(ParamStr(0))+'temp.txt');
for I := 1 to length(edit.text) do
begin
if edit.text[i] in visibleChars then
term:=term+edit.text[i];
end;
found:=false;
for I := 0 to memo1.Lines.Count-1 do
begin
if pos(term,memo1.Lines[i])>0 then
found:=true;
end;
showmessage(BoolToStr(found));
end;
funktioniert
das memo benutze ich nur während der Testphase, liege ich richtig dass eine Stringlist schneller wäre? Und noch zwei andere Fragen:
- lässt sich der Vorgang etwas beschleunigen bzw. wie lässt sich die Gesamtgröße der Quelldatei berechnen um einen Fortschritt in Prozent zu berechnen.
- und wie füge ich den Filterausdruck zB "#32" ein? Wie man zB eine Klammer einfügt habe ich verstanden, aber bei #32 gibt es einen Umwandlungsfehler.