AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Alle Filenamen

Ein Thema von wendelin · begonnen am 7. Mai 2024 · letzter Beitrag vom 14. Mai 2024
Antwort Antwort
Seite 1 von 2  1 2   
wendelin

Registriert seit: 29. Dez 2010
Ort: Nürnberg
126 Beiträge
 
Delphi 7 Enterprise
 
#1

Alle Filenamen

  Alt 7. Mai 2024, 15:58
Hallo,
ich habe eine wahrscheinlich für Euch einfache Frage.

mit dem kleinen Beispiel kann ich z.B. verschiedene CSV. files öffnen und lesen.
Nun habe ich innerhalb eines Verzeichnisses mehr als 100 CSV.Files.
ich möchte nun nicht File für File ( im Open- Window) offnen und lesen bzw. einlesen.
Sondern ich mochte das ganze automatisieren.

Wie kann ich die einzelnen FileNamen z,B. in einer Stringliste abspeichern oder mir in einem StringGrid anzeichen lassen ?

Wolfgang (Wendelin)
Angehängte Dateien
Dateityp: txt Beispiel.Txt (460 Bytes, 11x aufgerufen)
Wolfgang
  Mit Zitat antworten Zitat
AuronTLG

Registriert seit: 2. Mai 2018
Ort: Marburg
247 Beiträge
 
Delphi 12 Athens
 
#2

AW: Alle Filenamen

  Alt 7. Mai 2024, 16:13
System.IOUtils.TDirectory.GetFiles wäre die offizielle Variante.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Alle Filenamen

  Alt 7. Mai 2024, 16:17
Der OpenDialog hat auch ein, in den Optionen aktivierbares, MultiSelect und dann Strg und/oder Shift, sowie Maus/Pfeiltasten,
oder man stellt den Dialog auf Verzeichnisauswahl ein und nimmt dann das ganze Verzeichnis.

Oder Edits für Verzeichnis und vieleicht noch Eines für eine Dateimaske
oder ein TEdit für Beides und dann trennen (ExtractFilePath und ExtractFileName)
und dann Delphi-Referenz durchsuchenTDirectory.GetFiles

oder
oder
oder




Und bei einem Edit kann man dann entweder einen Button (oder direkt ein TButtonedEdit) mit dem FileOpenDialog
und/oder ein AutoComplete hinzufügen.
MSDN-Library durchsuchenSHAutoComplete + SHACF_FILESYSTEM
https://learn.microsoft.com/en-us/wi...2/shell/ac-ovw

Hier im Forum suchenSHAutoComplete
https://blog.dummzeuch.de/2014/06/09...te-for-tedits/
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
wendelin

Registriert seit: 29. Dez 2010
Ort: Nürnberg
126 Beiträge
 
Delphi 7 Enterprise
 
#4

AW: Alle Filenamen

  Alt 8. Mai 2024, 08:21
Hallo,
Danke an alle für Eure Antworten.

Ich denke, Ihr habt mir sehr geholfen.


Wolfgang (Wendelin)
Wolfgang
  Mit Zitat antworten Zitat
wendelin

Registriert seit: 29. Dez 2010
Ort: Nürnberg
126 Beiträge
 
Delphi 7 Enterprise
 
#5

AW: Alle Filenamen

  Alt 9. Mai 2024, 10:57
Hallo,
leider klappt es bei mir noch nicht richtig.

Wenn ich folgenden Code schreibe, siehe Example und compiliere
erhalte ich folgende Fehlermeldung : Undeclared Indentifier 'IOUtils'

Kann es sein, dass bei Delphi7 der 'System' 'IOUtils' Fehlt ?

Wolfgang (Wendelin)
Angehängte Dateien
Dateityp: txt Example.txt (308 Bytes, 4x aufgerufen)
Wolfgang
  Mit Zitat antworten Zitat
Aliquis

Registriert seit: 26. Jun 2011
Ort: Grafschaft Bentheim
20 Beiträge
 
Delphi 12 Athens
 
#6

AW: Alle Filenamen

  Alt 9. Mai 2024, 11:14
Ja, so weit ich weiß gibt es System.IoUtils erst ab Delphi 2010.
Georg
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.434 Beiträge
 
Delphi 7 Professional
 
#7

AW: Alle Filenamen

  Alt 9. Mai 2024, 11:22
Delphi 7 kennt das meiste des Vorgeschlagenen nicht, daher können die Ideen mit Delphi 7 nicht umgesetzt werden.

Das von himitsu vorgeschlagene Mulitselect in OpenDialog funktioniert in Delphi 7.

Befrage die Suchmaschine Deiner Wahl mal nach rekursive Dateisuche Delphi 7. Dort solltest Du Antworten zu Deiner Fragestellung finden, die auch mit Delphi 7 funktionieren.
  Mit Zitat antworten Zitat
Papaschlumpf73
Online

Registriert seit: 3. Mär 2014
Ort: Berlin
325 Beiträge
 
Delphi 12 Athens
 
#8

AW: Alle Filenamen

  Alt 9. Mai 2024, 11:41
Das hier müsste auch unter Delphi 7 funktionieren:

Delphi-Quellcode:
procedure GetFileListEx(const Directory: string; const Files: TStrings; const FileMask: string; const SubFolders: Boolean);
var SearchRec: TSearchRec;
begin
Application.ProcessMessages;
if FindFirst(IncludeTrailingPathDelimiter(Directory)+FileMask, faAnyFile and not faDirectory and not faVolumeID and not faHidden, SearchRec) = 0 then
 try repeat Files.Add(IncludeTrailingPathDelimiter(directory)+SearchRec.Name);
     until FindNext(SearchRec) <> 0;
 finally SysUtils.FindClose(SearchRec); end;
if SubFolders then
 if FindFirst(IncludeTrailingPathDelimiter(Directory)+'*.*', faAnyFile, SearchRec) = 0 then
  try repeat
      if (SearchRec.Attr and faDirectory) <> 0 then
       if ((SearchRec.Name <> '.') and (SearchRec.Name <> '..'))
       then GetFileListEx(IncludeTrailingPathDelimiter(Directory)+SearchRec.Name, Files, FileMask, SubFolders);
      until FindNext(SearchRec) <> 0;
  finally SysUtils.FindClose(SearchRec); end;
end;
  Mit Zitat antworten Zitat
TBx
(Administrator)

Registriert seit: 13. Jul 2005
Ort: Stadthagen
1.879 Beiträge
 
Delphi 12 Athens
 
#9

AW: Alle Filenamen

  Alt 9. Mai 2024, 12:42
Vielleicht hilft dir das hier weiter.
Thomas Breitkreuz
Gruß Thomas
- Admin DelphiPRAXIS
- Admin Delphi-Treff
- Embarcadero MVP
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.856 Beiträge
 
Delphi 12 Athens
 
#10

AW: Alle Filenamen

  Alt 9. Mai 2024, 12:48
Das hier müsste auch unter Delphi 7 funktionieren:

Delphi-Quellcode:
procedure GetFileListEx(const Directory: string; const Files: TStrings; const FileMask: string; const SubFolders: Boolean);
var SearchRec: TSearchRec;
begin
Application.ProcessMessages;
if FindFirst(IncludeTrailingPathDelimiter(Directory)+FileMask, faAnyFile and not faDirectory and not faVolumeID and not faHidden, SearchRec) = 0 then
 try repeat Files.Add(IncludeTrailingPathDelimiter(directory)+SearchRec.Name);
     until FindNext(SearchRec) <> 0;
 finally SysUtils.FindClose(SearchRec); end;
if SubFolders then
 if FindFirst(IncludeTrailingPathDelimiter(Directory)+'*.*', faAnyFile, SearchRec) = 0 then
  try repeat
      if (SearchRec.Attr and faDirectory) <> 0 then
       if ((SearchRec.Name <> '.') and (SearchRec.Name <> '..'))
       then GetFileListEx(IncludeTrailingPathDelimiter(Directory)+SearchRec.Name, Files, FileMask, SubFolders);
      until FindNext(SearchRec) <> 0;
  finally SysUtils.FindClose(SearchRec); end;
end;
Könnte funktionieren, auch wenn ich das etwas anders formatieren würde, aber das ist mehrheitlich Geschmackssache.
Was ich aber lieber weglassen würde ist das Application.ProgressMessages. Damit kann man auch Chaos anrichten,
z. B. wenn die Routine aus einem Eventhandler heraus aufgerufen wird und der nicht reetrant ist...
Grüße
TurboMagic
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 08:53 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