AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Schnelle Suche einer Zeile in txt-Datei
Thema durchsuchen
Ansicht
Themen-Optionen

Schnelle Suche einer Zeile in txt-Datei

Ein Thema von Nicolai1234 · begonnen am 26. Jul 2005 · letzter Beitrag vom 27. Jul 2005
Antwort Antwort
Nicolai1234

Registriert seit: 21. Feb 2004
1.008 Beiträge
 
Turbo Delphi für Win32
 
#1

Schnelle Suche einer Zeile in txt-Datei

  Alt 26. Jul 2005, 00:08
Hallo,
ich habe eine Textdatei, in der alle Ordner meiner Festplatte (nur c:\ aufgelistet sind. Das ganze sieht in etwa so aus:
Zitat:
c:\Downloads\
c:\Downloads\Delphi\
c:\Downloads\Delphi\icq\
c:\Downloads\Delphi\icq\adicqclient\
c:\Downloads\Delphi\icq\adicqclient\ICQ\
c:\Downloads\Delphi\icq\adicqclient\ICQ\Component\
c:\Downloads\Delphi\icq\adicqclient\ICQ\DBConverte r\
c:\Downloads\Delphi\icq\adicqclient\ICQ\Example\
Nun möchte ich zwischen den Verzeichnisse à la MS-DOS navigieren können.
Soll heißen, dass da sowas in einer Art Eingabeaufforderung stehen soll:
Zitat:
c:\ cd Downloads
c:\Downloads\
Naja, ihr wisst denke ich, was ich meine...

Nun ist das Problem, dass man dann realtiv schnell überprüfen muss, ob das angegebende Verzeichnis bei "cd" auch existiert (in diesem Fall "Downloads").
Dazu müsste ich nun alle Zeilen in der Textdatei durchgehen, um zu schauen, ob das Verzeichnis vorhanden ist. Das dauerte bei mehreren Tausend Ordner aber zu lange.

Wie könnte man das schneller machen?
(auch gerne mit Konvertierung in mehrere Dateien vorher oder so. Allerdings keine DBs, die vom Rechner abhängig sind (Installierte Trieber und so...))

Vielen Dank im voraus
Nicolai

(mir fiel eben kein besserer Titel ein; ich ändere ihn aber gerne)
  Mit Zitat antworten Zitat
DBR

Registriert seit: 19. Jul 2005
43 Beiträge
 
#2

Re: Schnelle Suche einer Zeile in txt-Datei

  Alt 26. Jul 2005, 00:54
warum nicht einfach "DirectoryExists"

oder hab ich die Sache falsch verstanden?
  Mit Zitat antworten Zitat
Thebe

Registriert seit: 26. Jul 2004
Ort: Wedel
78 Beiträge
 
Delphi 6 Enterprise
 
#3

Re: Schnelle Suche einer Zeile in txt-Datei

  Alt 26. Jul 2005, 02:30
Du könntest die TXT beim Starten des Programms in ein binären Baum einlesen und mit dem Baum navigieren. Das Ding würde erst lahm werden, wenn Du sehr viele Unterverzeichnisse / Dateien in deinem aktuellen Verzeichniss hast. Nachteil is nur, das Du TXT und Treeview beim Starten/Beenden/zwischendurch u.U. synchronisieren musst, hab ja keine Ahnung wofür dein Prog is und was da alles so nebenbei passiert.
  Mit Zitat antworten Zitat
Nicolai1234

Registriert seit: 21. Feb 2004
1.008 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Schnelle Suche einer Zeile in txt-Datei

  Alt 27. Jul 2005, 01:01
Ich habe das ganze jetzt so gelöst:
Ich lese das ganze in tstringlist ein und lasse mir dann ein Ergebnis über IndexOf geben. Wenn das -1 ist, existiert der String nicht. Das ganze geht eigentlich ziehmlich schnell.

Wie durchsucht denn tstringlist die Liste?
  Mit Zitat antworten Zitat
Benutzerbild von ste_ett
ste_ett

Registriert seit: 10. Sep 2004
Ort: Dülmen
464 Beiträge
 
Delphi 7 Professional
 
#5

Re: Schnelle Suche einer Zeile in txt-Datei

  Alt 27. Jul 2005, 08:03
Mit einer for-Schleife durch den String und CompareStrings().
Stefan
"Geht nicht!" ist keine Fehlerbeschreibung und "Hab ich schon versucht!" keine Antwort!

Hey, it compiles! Ship it!
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#6

Re: Schnelle Suche einer Zeile in txt-Datei

  Alt 27. Jul 2005, 09:04
Hallo Nicolai,

Zitat von Nicolai1605:
Das ganze geht eigentlich ziehmlich schnell.
wenn du die Eigenschaft Sorted deiner Stringlist einschaltest, dann könnte es sogar noch schneller gehen, weil dann ein binary search möglich ist. Bei 65535 Einträgen hat der Suchvorgang dann maximal 16 Schritte, bei unsortierter Liste im Mittel immerhin 32767.

Grüße vom marabu
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:50 Uhr.
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