Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Datei durchsuchen (https://www.delphipraxis.net/141737-datei-durchsuchen.html)

the_seed 15. Okt 2009 06:35


Datei durchsuchen
 
Hi, brauch eure hilfe ichhab folgende problemstellung

ich habe eine variable mit irgend einer nummer und möchte eine textdatei nach dieser nummer durchsuchen und dementsprechend diese zeile ausgeben.

zb.
nummer:= '123456'

Textdatei: doijweoidjd oweidj123456789dwd wedwe
dwedwedewdwed45613547dededwd ... usw

habe schon probiert mittels pos die position zu bestimmen funkt. aber leider nicht.

Delphi-Quellcode:
var suchstr,x,y:string;
    i     : integer;
    q     : Tstringlist:
begin

  suchstr:='458756';
   q := TStringlist.create.
   q.loadfromfile('daten.txt');

for i:= 0 to q.count-1 do begin

y:= pos(q.strings[i],suchstr);
   if y<>0 showmessage(q[y]);
end;
end;
habe einiges probiert und bisher wurden mir zwar positionen angeziegt aber nie die richtigen, bitte um hilfe wie ich das problem am besten löse

worker 15. Okt 2009 06:42

Re: Datei durchsuchen
 
Schau Dir die Reihenfolge der Parameter an
Arbeite mit try-finally
Denke dran, dass das Ergebnis von Pos die Position innerhalb der Zeile ist; nicht innerhalb der Datei

the_seed 15. Okt 2009 06:59

Re: Datei durchsuchen
 
Zitat:

Zitat von worker
Schau Dir die Reihenfolge der Parameter an
Arbeite mit try-finally
Denke dran, dass das Ergebnis von Pos die Position innerhalb der Zeile ist; nicht innerhalb der Datei

oh verdammt dann wird mir einiges klar... also so

Delphi-Quellcode:
var suchstr,x,y:string;
    i     : integer;
    q     : Tstringlist:
begin

  suchstr:='458756';
   q := TStringlist.create.
   q.loadfromfile('daten.txt');

for i:= 0 to q.count-1 do begin

try
y:= pos(q.strings[i],suchstr);
 finally
   showmessage(q[i]);
end;

 
end;

worker 15. Okt 2009 07:35

Re: Datei durchsuchen
 
Zitat:

Zitat von the_seed
oh verdammt dann wird mir einiges klar

Das bezweifle ich, denn

Zitat:

Zitat von the_seed
... also so [...]

ist noch immer falsch.

1. Du suchst noch immer nach der Position des Textes aus Zeile x innerhalb von suchstr
2. Der try-finally-Block sollte nicht zur Ausgabe Deines Results dienen, sondern zur Absicherung vor Speicherfressern; dort gibst Du Deine erzeugte Stringliste wieder frei.

gemms 15. Okt 2009 08:09

Re: Datei durchsuchen
 
Hallo the_seed

Du solltest mal dein Pos umstellen....

Alt: y:= pos(q.strings[i],suchstr);
Neu: y:= pos(suchstr,q.strings[i]);

Gruß
gemms

worker 15. Okt 2009 08:13

Re: Datei durchsuchen
 
Zitat:

Zitat von gemms
Du solltest mal dein Pos umstellen....

Alt: y:= pos(q.strings[i],suchstr);
Neu: y:= pos(suchstr,q.strings[i]);

Ja, kau ihm noch schön alles vor - pädagogisch sehr wertvoll; und vor allem bleibt es so gut im Gedächtnis :wall:
Meine Hinweise sollten ihn dahin lenken, mal selber in die Hilfe zu schauen :idea:


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:44 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz