![]() |
Problem mit "Datei Suchen"
Guten Abend,
Hallo erstmal, ich habe hier schon viel gelesen und mich auf grund eines Problems dazu entschlossen mich hier endlichmal anzumelden :mrgreen: 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 " ![]()
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;
Delphi-Quellcode:
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:
FindFiles ('c:\windows', '*.txt', True, ListBox1.Items);
Delphi-Quellcode:
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 .. :oops:
...
var Strings: TStrings; ... begin Strings := TStrings.Create; FindFiles('C:\...\...\folder', '12345.txt', True, Strings); end. ... Vielen Dank, tbird |
Re: Problem mit "Datei Suchen"
Delphi-Quellcode:
[edit] Sry, Willkommen in der DP :dp: [/edit]
var
Strings: TStrings; ... begin Strings := TStringList.Create; ... |
Re: Problem mit "Datei Suchen"
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 |
Re: Problem mit "Datei Suchen"
Zitat:
Warum Sorry? geht doch so! Vielen, vielen Dank! PS: Man bin ich ein dummkopf :mrgreen: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:19 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