Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi TStringList.Find gibt nie True zurück (https://www.delphipraxis.net/130952-tstringlist-find-gibt-nie-true-zurueck.html)

Dipl Phys Ernst Winter 29. Mai 2009 16:00

Re: TStringList.Find gibt nie True zurück
 
Delphi-Quellcode:
List.LoadFromFile(ExtractFilePath(ParamStr(0))+'Words.txt');
Das geht sicher nicht! Eine Liste lässt sich nur aus einer Datei laden, in die mit List.SaveToFile eine Liste gespeichert wurde. Ich tippe mal, dass deine Liste leer bleibt.

Willst Du Testen, ob ein Wort in einer Textdatei vorhanden ist, musst do eine Wortliste der Datei erstellen.

Was soll das Uppercase in
Delphi-Quellcode:
if List.Find(Uppercase(tx),k) then

Muetze1 29. Mai 2009 16:22

Re: TStringList.Find gibt nie True zurück
 
1. Wenn die Datei nicht existiert, gibst du die angelegte StringList niemals frei.
2. Der Try/finally Block ist völlig falsch angewendet
3. List.Free bringt nach einem Break; überhaupt nix, da das Break die (innere) Schleife sofort verlässt
4. Das Exit dementsprechend ist genauso sinnlos.
5. Break verlässt nur die innere Schleife, d.h. in der äusseren macht er mit dem nächsten Durchlauf weiter...

Bbommel 31. Mai 2009 14:22

Re: TStringList.Find gibt nie True zurück
 
Zitat:

Zitat von Dipl Phys Ernst Winter
Delphi-Quellcode:
List.LoadFromFile(ExtractFilePath(ParamStr(0))+'Words.txt');
Das geht sicher nicht! Eine Liste lässt sich nur aus einer Datei laden, in die mit List.SaveToFile eine Liste gespeichert wurde. Ich tippe mal, dass deine Liste leer bleibt.

Das stimmt nicht - mit TStringList.LoadFromFile lässt sich jede Textdatei in eine StringList lesen, egal, wie diese Textdatei erstellt wurde. Wie kommst du darauf, dass das anders sein sollte?

Bis denn
Bommel

Dipl Phys Ernst Winter 7. Jun 2009 22:47

Re: TStringList.Find gibt nie True zurück
 
Zitat:

Das stimmt nicht - mit TStringList.LoadFromFile lässt sich jede Textdatei in eine StringList lesen, egal, wie diese Textdatei erstellt wurde. Wie kommst du darauf, dass das anders sein sollte
Ok! Dann stehen die Zeilen der Textdatei in den Items.
Nach denen hat er wohl nicht gesucht. Wenn ich ihn richtig verstanden habe, sucht er nach einzelnen Worten.

mkinzler 7. Jun 2009 22:57

Re: TStringList.Find gibt nie True zurück
 
Dies wiet aber eher auf eine Nichinstantiierung des StringList-Objektes hin.
Es sollte so aber jede beliebige Textdatei eingelesen werden können.

Luckie 7. Jun 2009 22:58

Re: TStringList.Find gibt nie True zurück
 
Zitat:

Zitat von Dipl Phys Ernst Winter
Was sollte auch in den Items der StringListe stehen??

... die Zeilen der Textdatei und zwar jeder beliebigen Textdatei.

quendolineDD 7. Jun 2009 23:04

Re: TStringList.Find gibt nie True zurück
 
Zitat:

Eine Liste lässt sich nur aus einer Datei laden, in die mit List.SaveToFile eine Liste gespeichert wurde
Vollkommen falsch.
Aus der Delphi-Hilfe (TDE 2006)
Zitat:

Beschreibung
Mit Methode LoadFromFile wird der Inhalt einer Textdatei in die Liste eines TStrings-Objekts geladen. Der Name der Datei wird im Parameter FileName übergeben. LoadFromFile löscht zunächst alle bereits in der Liste vorhandenen Strings. Danach wird jede Zeile der Textdatei, die mit einem Zeichen für Zeilenvorschub oder Wagenrücklauf endet, als String an die Liste angefügt.
Hinweis:
LoadFromFile verwendet die Methode Add, um die Liste aus einer Textdatei zu füllen.

Amateurprofi 7. Jun 2009 23:04

Re: TStringList.Find gibt nie True zurück
 
Zitat:

Zitat von Dipl Phys Ernst Winter
Zitat:

Das stimmt nicht - mit TStringList.LoadFromFile lässt sich jede Textdatei in eine StringList lesen, egal, wie diese Textdatei erstellt wurde. Wie kommst du darauf, dass das anders sein sollte
Weil ich da eine Exception Lesen von Adresse 00000 erhalte!
Was sollte auch in den Items der StringListe stehen??

Ein Item der StringListe enthält eine Zeile der Datei.

Zitat:

Zitat von Delphi Hilfe
Mit Methode LoadFromFile wird der Inhalt einer Textdatei in die Liste eines TStrings-Objekts geladen. Der Name der Datei wird im Parameter FileName übergeben. LoadFromFile löscht zunächst alle bereits in der Liste vorhandenen Strings. Danach wird jede Zeile der Textdatei, die mit einem Zeichen für Zeilenvorschub oder Wagenrücklauf endet, als String an die Liste angefügt.

Hinweis: LoadFromFile verwendet die Methode Add, um die Liste aus einer Textdatei zu füllen.


Luckie 7. Jun 2009 23:09

Re: TStringList.Find gibt nie True zurück
 
OK, ich glaube, das hätten wir jetzt geklärt, kommen wir zum eigentlichen Problem zurück. ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:35 Uhr.
Seite 2 von 2     12   

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