AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit "Datei Suchen"

Ein Thema von tbird · begonnen am 23. Nov 2009 · letzter Beitrag vom 23. Nov 2009
Antwort Antwort
tbird

Registriert seit: 23. Nov 2009
2 Beiträge
 
#1

Problem mit "Datei Suchen"

  Alt 23. Nov 2009, 19:03
Guten Abend,


Hallo erstmal, ich habe hier schon viel gelesen und mich auf grund eines Problems dazu entschlossen mich hier endlichmal anzumelden

Jetzt aber mal zu meinen Problem, ich möchte in einem Verzeichnis (und dessen Unterverzeichniss) eine bestimmte datei suchen (nennen wir sie mal "12345.txt"), diese Datei existiert warscheinlich nur einmal, möglicher weiße aber auch öfters.

Darfür habe ich von "Tino" eine tolle Prozedur gefunden:

Delphi-Quellcode:
Procedure FindFiles (aPath, aFindMask: String; aWithSub: Boolean; aResult: tStrings);
Var
  FindRec: tSearchRec;
Begin
  // Wenn die Stringliste nil ist oder aPath oder aFind nicht angegeben ist
  // dann raus
  If (aPath = '') or (aFindMask = '') or Not Assigned (aResult) Then
    Exit;

  // Wenn am Ende der Pfadangabe noch kein \ steht, dieses hinzufügen
  // (Oder die Funktion IncludeTrailingPathDelimiter aus der Unit SysUtils.pas verwenden)
  If aPath[Length (aPath)] <> '\Then
    aPath := aPath + '\';

  // Im aktuellen Verzeichnis nach der Datei suchen
  If FindFirst (aPath + aFindMask, faAnyFile, FindRec) = 0 Then
    Repeat
      If (FindRec.Name <> '.') and (FindRec.Name <> '..') Then
        // ...Ergebnis in die Stringlist einfügen
        aResult.Add (aPath + FindRec.Name);
    Until FindNext (FindRec) <> 0;

  FindClose (FindRec);

  // Wenn nicht in Unterverzeichnissen gesucht werden soll dann raus
  If Not aWithSub Then
    Exit;

  // In Unterverzeichnissen weiter suchen
  If FindFirst (aPath + '*.*', faAnyFile, FindRec) = 0 Then
    Repeat
      If (FindRec.Name <> '.') and (FindRec.Name <> '..') Then
        // Feststellen, ob es sich um ein Verzeichnis handelt
        If Boolean (FindRec.Attr and faDirectory) Then
          // Funktion erneut aufrufen, um Verzeichnis zu durchsuchen (Rekursion)
          FindFiles (aPath + FindRec.Name, aFindMask, aWithSub, aResult);
    Until FindNext (FindRec) <> 0;

   FindClose (FindRec);
End;
FindFiles ('c:\windows', '*.txt', True, ListBox1.Items); Mein Problem dabei ist allerdings das ich keine ListBox verwenden kann, da ich eine Konsolen Applikation Programmiere. Also muss ich auf TStrings oder TStringList zurückgreifen. Hier beginnt allerdings das Problem:

Delphi-Quellcode:
...
var
Strings: TStrings;
...
begin
Strings := TStrings.Create;
FindFiles('C:\...\...\folder', '12345.txt', True, Strings);
end.
...
liefert mit jediglich (D2010) "Exception EAbstractError in Modul Project1.exe bei 00015F9F. Abstrakter Fehler.", diverste Parameter für Strings (Strings.XXX) habe ich schon ausprobiert, entweder funktionieren sie nicht oder ich habe nur nicht den richtigen gefunden ..

Vielen Dank,
tbird
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Problem mit "Datei Suchen"

  Alt 23. Nov 2009, 19:18
Delphi-Quellcode:
var
Strings: TStrings;
...
begin
  Strings := TStringList.Create;
  ...
[edit] Sry, Willkommen in der DP [/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.137 Beiträge
 
Delphi 12 Athens
 
#3

Re: Problem mit "Datei Suchen"

  Alt 23. Nov 2009, 19:20
Statt ListBox1.Items kannst du jede Art von TStrings nehmen, aber

TStrings ist nur ein abstrakter Basistyp, welcher nichts kann,
deßhalb nimmt man einen Nachfahren davon ... z.B. TStringList
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
tbird

Registriert seit: 23. Nov 2009
2 Beiträge
 
#4

Re: Problem mit "Datei Suchen"

  Alt 23. Nov 2009, 19:22
Zitat von DeddyH:
Delphi-Quellcode:
var
Strings: TStrings;
...
begin
  Strings := TStringList.Create;
  ...
[edit] Sry, Willkommen in der DP [/edit]

Warum Sorry? geht doch so! Vielen, vielen Dank!


PS: Man bin ich ein dummkopf
  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 14:03 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