Autor Beitrag
Urmel81
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Mi 18.11.09 23:11 
hallo zusammen,

ich suche eine möglichkeit eine datei nach mehreren schlüsselwörtern zu durchsuchen. dabei soll die datei nicht nach jedem schlüsselwort geschlossen und wieder geöffnet werden, sondern sozusagen einfach der zeilenzähler zurückgesetzt und die datei mit dem neuen schlüsselwort erneut durchsucht werden. bisher habe ich die datei immer mit "readln" und dann mit "pos" nach dem schlüsselwort gesucht. leider scheitere ich eben daran das schlüsselwort zu ändern und die datei erneut zu durchsuchen.

bin für jede idee dankbar.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 19.11.09 01:55 
Hallo und :welcome: im Forum!

user profile iconUrmel81 hat folgendes geschrieben Zum zitierten Posting springen:
leider scheitere ich eben daran das schlüsselwort zu ändern und die datei erneut zu durchsuchen.
Du hast also einen Quelltext, zeigst den aber nicht. Daran weißt du nicht wie du eine Änderung machen kannst, und möchtest dabei Hilfe.

Aber wie sollen wir jetzt zeigen wie ein Quelltext geändert werden kann, den wir nicht kennen? :gruebel:
Horst_H
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1654
Erhaltene Danke: 244

WIN10,PuppyLinux
FreePascal,Lazarus
BeitragVerfasst: Do 19.11.09 09:42 
Hallo,

A:was hindert Dich daran die Datei zu schliessen und neu zu öffnen?
B:Warum arbeitest Du nicht einfach eine Schlüsselwortliste (array of String) ab? Eine Zeile lesen und dann nach den Schlüsselworten suchen , nächste Zeile usw...

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
//Suchwortliste erstellen.
...
//Datei öffnen 
...
//und dann durchsuchen 
while  NOT(EOF(Textdatei)) do
  begin
  readln(TextDatei,Zeile)
  For i := 0 to high(Suchwortliste) do
     IF POS(Suchwortliste[i],Zeile) <> 0 then
       //habe was gefunden mach was
  end;


Gruß Horst
Urmel81 Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Do 19.11.09 10:13 
genau so hatte ich es auch gemacht, also ohne die liste.


while not eof(FileToRead) do
begin
readln(FileToRead,DataSearch);
position:= pos(KeyAnfang,DataSearch);
if position <> 0 then
begin
...

manchmal sieht man den wald vor lauter bäumen nicht ;-)

zum thema öffnen und schließen:
ich finds einfach eine elegantere lösung eine datei in einem rutsch nach allen keywords zu durchsuchen ohne sie mehrmals öffnen und schließen zu müssen.

nen array of string is ne jute idee :-)

danke euch.