Wenn ich's richtig verstanden habe, suchst du die Texte von denjenigen Zeilen, die ein bestimmtes Kennzeichen haben. Wenn du das Tempelmannsche Array hast, könntest du das Array nach Kennzeichen sortieren. Als nächstes ginge es darum, diejenigen Array-Elemente zu finden, die ein bestimmtes Kennzeichen haben. Normalerweise müsstest du jetzt alle Elemente des Arrays ablaufen und jeweils prüfen, welches das erste Element mit dem gesuchten Kennzeichen ist und welches das letzte ist. Diesen Such-Vorgang könnte man abkürzen mit dem sog. Artillerie-Verfahren (bei 100 Elementen prüfst du Element 50; falls größer als gesucht, prüfe Element 25, falls kleiner(!) als gesucht, prüfe 37 (25+12), falls kleiner als gesucht, prüfe 43 (37+6), .... Kurz: immer die Hälfte des jeweils verbleibenden Intervalls auf größer/kleiner prüfen). Man kann 'mal durchrechnen, nach höchstens wievielen Such-Schritten man das gesuchte Element gefunden hat in Abhängigkeit von der Gesamtzahl der Elemente. Das ist auf jeden Fall nur ein Bruchteil aller Elemente.

Bei einer sehr großen Anzahl von Elementen wäre auch der Gedanke nicht abwegig, eine Datenbank-Tabelle anzulegen und mit einer SQL-Abfrage zu suchen.

beste Grüße, Christian Hahn.

----- Original Message ----- From: "Stefan Mettenbrink" <s.me...@gmx.de>
To: "Mailingliste Realbasic" <realbasic-nug.de@lists.realsoftware.com>
Sent: Wednesday, May 04, 2011 5:03 PM
Subject: Textdateien prüfen


Ich möchte einen Ordner Textdateien auf vorhandensein von bestimmten
Textfragmenten prüfen. Dazu habe ich die Datei in einen String
eingelesen und dann per NthField die passenden Stellen rausgesucht (mir
geht es um den Text hinter dem Kennzeichen). Da es durchaus auch mehrere
tausend Zeilen mit diesem Kennzeichen sein können, dauert das
Prozedere recht lange.

Hat jemand eine Idee, wie man die Suche beschleunigen kann?

Zum besseren Verständnis:
Die Dateien enthalten zeilenweise Text. Am Zeilenanfang ist ein
Kennzeichen, danach folgt bis zum Zeilenende der wesentliche Text.

MfG, Metti.


Antwort per Email an