Entwickler-Ecke

Algorithmen, Optimierung und Assembler - Eine Text Datei durchsuchen


DelphiDome - Mi 28.04.10 17:31
Titel: Eine Text Datei durchsuchen
:? Ich möchte ein Kassenprogramm programmieren und dann in ein Edit eine Zahl eingeben und das Programm durchsucht dann eine Textdatei(txt)und zeigt Zusatz Informationen an.


Gausi - Mi 28.04.10 17:40

Hallo und :welcome: in der Entwickler Ecke,

Dann wünsche ich dir mal viel Erfolg bei deinem Vorhaben. Und wenn du an einer Stelle nicht weiterkommst, kannst du ja fragen, wie man da was machen kann. :D


Dude566 - Mi 28.04.10 17:51

Und wo hakts? Ist ja schön das du uns dein Projekt mitteilst, aber ohne eine konkrete Frage wird hier keiner Helfen können.


DelphiDome - Mi 28.04.10 20:23

also ich habe probleme damit das dass programm die textdatei nicht durchsucht ich brauch den Quelltext damit es die datei durchsucht


Gausi - Mi 28.04.10 20:26

Wie ist denn dein bisheriger Ansatz, was hast du schon? Hast du die Datei schon eingelesen, z.B. in einen String oder eine StringList?
Und wie ist die Datei aufgebaut, d.h. wie sehen die "Zusatzinformationen" aus, wo stehen die in der Datei, und wie könnte man die erkennen, um die anzuzeigen?


ffgorcky - Sa 01.05.10 14:54

Also wenn ich Dein Problem richtig verstanden habe, dann hier mal ein ganz simpler Ansatz, wenn Du nur die Position eines Textes in Deinem MemoMitZuDurchsText.Text finden möchtest:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
function findeText(zfT:String):int64;
var i,gefundenAnStelle:int64;
    gefunden:Boolean;
begin
i:=0;
while ((i<=length(MemoMitZuDurchsText.Text)-length(zfT))and(not gefunden)) do
  begin
  if copy(MemoMitZuDurchsText.Text,i,length(zfT))=zfT then
    begin
    gefunden:=true; 
    gefundenAnStelle:=i;
    end
  else
    i:=i+1;
end;
if (gefunden) then
  return gefundenAnStelle;
else
  return -1;
end;

So, ich hoffe, dass das klappt - ich habe es noch nicht ausprobiert.

PS: Wenn der übergebene Text nicht gefunden wurde, wird -1 zurükgegeben.


SvenAbeln - Sa 01.05.10 16:52

@user profile iconffgorcky warum denn so oft copy ausführen, das ist dann doch sehr langsam? Außerdem gibt es doch auch eine fertige Funktion dafür: pos.


ffgorcky - Sa 01.05.10 17:46

Ach ja, stimmt! Bei der Suche nach memo & pos habe ich dann das Thema nach string in einer datei suchen und die strings danach [http://www.delphi-forum.de/viewtopic.php?t=95198&start=0&postorder=asc&highlight=memo+pos] gefunden.
Hilft das nicht schon bei dem Problem weiter?