![]() |
Schnittstellen für Windowsfunktionen in Delphie 7
Liebe Delphie Programmiererinnenund Programmierer,
ich habe folgende Frage: Ich möchte ein Programm verfassen, welches der Windows Suchen Funktion änelt. Trotz suche in der Delphiehilfe und in Netz habe ich nicht wirklich Hilfe zu dem Problem gefunden: Wie bekomme ich von Windows den Pfad und die Eigenschaften der einzelnen Dateien in Delphie. Gibt es dafür eine Schnittstelle oder muss ich das ganz anders angehen. Vielen Dank für eure Hilfe Der ESIETP PS.: Noch eine Frage am Rande: Ist es möglich in einem StrinGrid eine Mehrfachauswahl in unterschiedlichen Zeilen zu streffen? |
Re: Schnittstellen für Windowsfunktionen in Delphie 7
Such mal nach FindFirst
|
Re: Schnittstellen für Windowsfunktionen in Delphie 7
ok,vielen dank,
werde mir das nachher mal genau ansehen, habs jetzt nur überflogen gibts zu dem StrinGrid noch eine Lösung? Vielen Dank Der ESIETP |
Re: Schnittstellen für Windowsfunktionen in Delphie 7
Bitte erstell für jede Frage einen eigenen Thread, sonst geht es hier wild durcheinander.
|
Re: Schnittstellen für Windowsfunktionen in Delphie 7
Zitat:
Also zuerst mal ein ganz kleines Beispiel mit Erklärung:
Delphi-Quellcode:
Also zuerst musst du eine Variable deklarieren vom Typ TSearchRec. Darin werden die Informationen über eine gefundene Datei abgelegt (deswegen auch var-Parameter). Wie schon oben im Quelltext zu sehen gibt FindFirst 0 zurück wenn die/eine Datei gefunden wird die den Kriterien entspricht, die bei Pfad angegeben wurden (z.B findet C:\*.* die erst beste Datei auf C:\; C:\*.txt die erste Textdatei usw... wobei nicht rekursiv durchsucht wird.. das muss man schon selbst machen.. aber dazu komme ich gleich).
var SearchRec: TSearchRec;
begin if FindFirst('C:\*.*',faAnyFile,SearchRec) = 0 then // Datei gefunden begin ShowMessage(SearchRec.Name); // DateiName anzeigen end; FindClose(SearchRec); end; Jetzt zu den einzelnen Eigenschaften von TSearchRec: :arrow: Name = DateiName der gefundenen Datei (ohne Pfad!) :arrow: Size = Dateigröße der gefundenen Datei in Bytes :arrow: Attr = Attribute der gefundenen Datei (faReadOnly, faHidden, faSysFile, faVolumeID, faDirectory, faArchive, faSymLink, faAnyFile) :arrow: Time = Erstellungsdatum der Datei (Muss mit FileDateToDateTime(TSearchRec.Time) in ein normales TDate umgewandelt werden!) :arrow: ExcludeAttr = hab ich leider keine Ahnung :( :arrow: FindHandle = Unwichtig.. wird nur intern von TSearchRec,FindFirst,FindNext,.. benutzt :arrow: FindData = Record mit allen oben schon beschriebenen Daten und auch das ein oder andere zusätzliche... Zu TSearchRec.Attr: Du überprüfst ob ein Attribut gesetzt ist folgendermaßen:
Delphi-Quellcode:
Ein Beispiel um eine bestimmte Datei zu suchen:
if SearchRec.Attr and faHidden <> 0 then
ShowMessage('Datei ist versteckt!');
Delphi-Quellcode:
Ich hoffe mal das ich einigermaßen verständlich erklärt habe :)
procedure TForm1.FindSpezificFile(Filename: String; Path: String);
var SR: TSearchRec; tmpPath: String; begin tmpPath := Path + '*.*'; if FindFirst(tmpPath,faAnyFile, SR) = 0 then // was gefunden? begin repeat // solange... if ((SR.Attr and faDirectory) = faDirectory) then // falls es ein Ordner ist dann auch diesen durchsuchen begin if (SR.Name <> '.') and (SR.Name <> '..') then begin FindSpezificFile(Filename, Path + SR.Name +'\'); end; end else // wenn nicht dann gucken ob die gefundene Datei (teilweise) mit der gesuchten übereinstimmt begin if pos(Uppercase(Filename),UpperCase(SR.Name)) > 0 then ListBox1.Items.Add(Path + SR.Name); // Gefundene Datei in Listbox anzeigen end; Application.ProcessMessages; // PC soll in der Zeit noch reagieren until FindNext(SR) <> 0; // nach neuen Dateien in dem Ordner suchen bis keine mehr da gefunden werden FindClose(SR); // Suche beenden end; end; //Aufruf procedure TForm1.Button1Click(Sender: TObject); begin FindSpezificFile(Edit1.Text,'C:\'); end; Gruß Neutral General |
Re: Schnittstellen für Windowsfunktionen in Delphie 7
Zitat:
|
Re: Schnittstellen für Windowsfunktionen in Delphie 7
Zitat:
|
Re: Schnittstellen für Windowsfunktionen in Delphie 7
Vielen Dank für die Hilfe
und vorallem für Danke für die Erklährung. Auf jedenfall hat mir der Suchbegriff gefehlt, aber auch so eine schöne Darstellung ist nicht überall zu finden. Der ESIETP |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:22 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