AGB  ·  Datenschutz  ·  Impressum  







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

FindFirst - faAnyFile, SearchRec

Ein Thema von capo · begonnen am 30. Nov 2006 · letzter Beitrag vom 1. Dez 2006
Antwort Antwort
capo

Registriert seit: 7. Jul 2006
453 Beiträge
 
Delphi 11 Alexandria
 
#1

FindFirst - faAnyFile, SearchRec

  Alt 30. Nov 2006, 12:08
Hallo,
wenn ich hiermit ein Vezeichnis wähle um mir die Pfade der darin enthaltenen Dateien in eine Listbox zu schreiben:

Delphi-Quellcode:
if
FolderDialog1.Execute=True then begin
s:=FolderDialog1.Directory;

i := FindFirst(s+'\*.*', faAnyFile, SearchRec);
while i = 0 do
  begin
  ListBox1.Items.Add(s+'\'+SearchRec.Name);
..bekomme ich manchmal in der ersten beiden Zeilen der Listbox keine Dateipfade angezeigt... sondern nur das Verzeichnis
(schaut euch bitte das Bild an, wüßte nicht wie ich das sonst genauer beschreiben soll)

Wenn ich aber mit den dateien in der Listbox arbeiten will gibst einen Fehler, deshalb müßen falls vorhanden die ersten beiden
Dateilosen Zeilen raus,

Wie muss ich vorgehen?

gruss vom capo
Miniaturansicht angehängter Grafiken
listbox_144.gif  
Hotte
  Mit Zitat antworten Zitat
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.426 Beiträge
 
Delphi 2007 Professional
 
#2

Re: FindFirst - faAnyFile, SearchRec

  Alt 30. Nov 2006, 12:23
einfach die "Filenamen" ausblenden wenn die ein . oder .. sind
das ist das aktuelle bzw. das parent Verzeichnis (ist ganz normal das diese gefunden und angezeigt werden)
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
capo

Registriert seit: 7. Jul 2006
453 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: FindFirst - faAnyFile, SearchRec

  Alt 30. Nov 2006, 16:08
HI

wie blende ich den . und .. aus?

gruss capo
Hotte
  Mit Zitat antworten Zitat
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.426 Beiträge
 
Delphi 2007 Professional
 
#4

Re: FindFirst - faAnyFile, SearchRec

  Alt 30. Nov 2006, 16:17
Delphi-Quellcode:
if
FolderDialog1.Execute=True then begin
s:=FolderDialog1.Directory;

i := FindFirst(s+'\*.*', faAnyFile, SearchRec);
while i = 0 do
  begin
    if not ( (SearchRec.Name = '.') or (SearchRec.Name = '..') ) then
  ListBox1.Items.Add(s+'\'+SearchRec.Name);
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#5

Re: FindFirst - faAnyFile, SearchRec

  Alt 30. Nov 2006, 16:58
Sehr schön - und Dateien mit dem Namen werden denn gleich mit ausgeblendet. Durch NFS Clients etc ist nicht gleich gesagt, dass es bei allen unter Windows benutzten Dateisystemen dies nicht existieren kann...
  Mit Zitat antworten Zitat
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.426 Beiträge
 
Delphi 2007 Professional
 
#6

Re: FindFirst - faAnyFile, SearchRec

  Alt 30. Nov 2006, 17:33
Zitat von Muetze1:
Sehr schön - und Dateien mit dem Namen werden denn gleich mit ausgeblendet. Durch NFS Clients etc ist nicht gleich gesagt, dass es bei allen unter Windows benutzten Dateisystemen dies nicht existieren kann...
wie wäre es wenn du statt dem kommentar einfach ne lösung präsentieren würdest dafür?
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
TBx
(Administrator)

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

Re: FindFirst - faAnyFile, SearchRec

  Alt 30. Nov 2006, 17:44
Möchtest DU die in dem Pfad enthaltenen Unterordner auch sehen?
Wenn nicht, dann ruf das FirndFirst mit
Code:
(faAnyFile and not FaDirectory)
auf.
Dann bekommst DU gar keine Ordner (weder übergeordnete noch untergeordnete) zu sehen.

Eine Anmerkung am Rande:

Du schreibst:
if FolderDialog1.Execute=True then Du solltest hier nur
if FolderDialog1.Execute then verwenden.

Warum das so ist, ist hier schon oft diskutiert worden und über die Forensuche leicht zu finden.

Gruß

Thomas
Thomas Breitkreuz
Gruß Thomas
- Admin DelphiPRAXIS
- Admin Delphi-Treff
- Embarcadero MVP
  Mit Zitat antworten Zitat
capo

Registriert seit: 7. Jul 2006
453 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: FindFirst - faAnyFile, SearchRec

  Alt 30. Nov 2006, 23:54
(faAnyFile and not FaDirectory) Danke, genau das war's.

Zitat:
Du solltest hier nur
Delphi-Quellcode: markieren
if FolderDialog1.Execute then verwenden.

Warum das so ist, ist hier schon oft diskutiert worden und über die Forensuche leicht zu finden.
also ich hab nichts gefunden, hab zwar viel gefunden aber keine Erklärung.
Ich bezweifel nicht das es nichts gibt.
Magst du es trotzdem mal erklären?

gruss capo
Hotte
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#9

Re: FindFirst - faAnyFile, SearchRec

  Alt 1. Dez 2006, 00:05
Der Unterschied liegt darin, dass True als konstante mit einem festen Wert definiert wurde. Wenn du nun einen Vergleich auf True in deiner IF Bedingung schreibst, dann wird das Ergebnis direkt auf diesen konstanten Wert durchgeführt. Das Problem hierbei liegt im Detail, denn ein boolscher Wert wird wie folgt zugeordnet:

0 => False
<> 0 => True

Somit ist alles ungleich 0 True, und das ist immer mehr als eine bestimmte Konstante beinhalten kann. Daher ist es hier von Vorteil einfach diesen direkten Vergleich weg zu lassen und nur das Execute aufzurufen ohne Vergleich. IF Bedingungen vergleichen das Ergebnis auf Gleichheit mit 0 und handeln entsprechend - und das sollte immer klappen, weil 0 festgelegt ist als FALSE, während True sich in vielen Formen äussern kann.

Zitat von Gruber_Hans_12345:
Zitat von Muetze1:
Sehr schön - und Dateien mit dem Namen werden denn gleich mit ausgeblendet. Durch NFS Clients etc ist nicht gleich gesagt, dass es bei allen unter Windows benutzten Dateisystemen dies nicht existieren kann...
wie wäre es wenn du statt dem kommentar einfach ne lösung präsentieren würdest dafür?
Wozu? Wenn man selber Dinge findet versteht man sie meist besser als alles vorgesetzt zu bekommen und zu kopieren. Bei solchen wirklich banalen Dingen mache ich dies auch nicht - bei umfangreicheren bzw. schweren Dingen ist posten von Code selbstverständlich. Ich will hier nicht den Souffleur spielen sondern den Leuten hier eher das Fischen beibringen...
  Mit Zitat antworten Zitat
capo

Registriert seit: 7. Jul 2006
453 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: FindFirst - faAnyFile, SearchRec

  Alt 1. Dez 2006, 12:46
Nun verstehe ich es, danke für die tolle Erklärung.
capo

Danke nochmal an alle
Hotte
  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 09:46 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