AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Rekursive Dateisuche lässt Unterverzeichnisse aus
Thema durchsuchen
Ansicht
Themen-Optionen

Rekursive Dateisuche lässt Unterverzeichnisse aus

Ein Thema von Ykcim · begonnen am 30. Okt 2014 · letzter Beitrag vom 30. Okt 2014
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.666 Beiträge
 
Delphi 12 Athens
 
#1

AW: Rekursive Dateisuche lässt Unterverzeichnisse aus

  Alt 30. Okt 2014, 16:28
Zitat:
if (Rec.Attr in [faDirectory])
Müsste das nicht so lauten?
if (Rec.Attr and faDirectory = faDirectory)
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 Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Rekursive Dateisuche lässt Unterverzeichnisse aus

  Alt 30. Okt 2014, 16:31
Zitat:
if (Rec.Attr in [faDirectory])
Müsste das nicht so lauten?
if (Rec.Attr and faDirectory = faDirectory)
oder einfach andersherum if ( faDirectory in Rec.Attr ) sollte auch gehen

Was sagt die Doku zu Delphi-Referenz durchsuchenTSearchRec? Nö, geht doch nicht, ist nämlich kein Set ... sondern nur ein Integer
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (30. Okt 2014 um 16:33 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.666 Beiträge
 
Delphi 12 Athens
 
#3

AW: Rekursive Dateisuche lässt Unterverzeichnisse aus

  Alt 30. Okt 2014, 16:32
Japp, nur so wie ursprünglich klappt es eben nicht, wenn das Verzeichnis noch weitere Attribute hat.
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
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
856 Beiträge
 
Delphi 12 Athens
 
#4

AW: Rekursive Dateisuche lässt Unterverzeichnisse aus

  Alt 30. Okt 2014, 16:38
Hallo,

erst mal vielen Dank für die schnellen Antworten!!!

if (Rec.Attr and faDirectory = faDirectory) Ich habe es ausprobiert, aber leider kein Erfolg.
faDirector=16
Rec.Attr=48 Ich weiß beide Werte leider nicht zu interpretieren.

if ( faDirectory in Rec.Attr ) hier kommt die Fehlermeldung
E2015 Operator ist auf diesen Operandentyp nicht anwendbar Gruß Patrick
Patrick
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.666 Beiträge
 
Delphi 12 Athens
 
#5

AW: Rekursive Dateisuche lässt Unterverzeichnisse aus

  Alt 30. Okt 2014, 16:40
Würde aber passen.
Code:
00110000 //Rec.Attr
00010000 //faDirectory
========
00010000 //faDirectory
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 Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: Rekursive Dateisuche lässt Unterverzeichnisse aus

  Alt 30. Okt 2014, 16:44
Das Problem sind die fehlenden Klammern
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
856 Beiträge
 
Delphi 12 Athens
 
#7

AW: Rekursive Dateisuche lässt Unterverzeichnisse aus

  Alt 30. Okt 2014, 16:50
@Sir Rufo
Jepp, die Fehlermeldung ist weg, aber ich das Ergebnis ist das gleiche - es wird nur die Datei in dem Hauptverzeichnis angezeigt...

Ich weiß nicht ob es wichtig ist, aber der Pfad sieht so aus:
\\172.30.44.120\Zeichnungen\
Und dann gibt es halt Unterverzeichnisse
\\172.30.44.120\Zeichnungen\A\
\\172.30.44.120\Zeichnungen\Neu\

Ich versuche gerade den Gedanken vom schönen Günter umzusetzen...

Vielen Dank
Patrick
Patrick
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

AW: Rekursive Dateisuche lässt Unterverzeichnisse aus

  Alt 30. Okt 2014, 16:55
Ähm meine Aussage bezog sich auf den Code-Schnipsel von DeddyH. Meinen Code-Schnipsel habe ich in meinem Beitrag schon für ungültig erklärt.
Zitat:
if (Rec.Attr in [faDirectory])
Müsste das nicht so lauten?
if (Rec.Attr and faDirectory = faDirectory)
oder einfach andersherum if ( faDirectory in Rec.Attr ) sollte auch gehen

Was sagt die Doku zu Delphi-Referenz durchsuchenTSearchRec? Nö, geht doch nicht, ist nämlich kein Set ... sondern nur ein Integer
So sollte es funktionieren if ( ( Rec.Attr and faDirectory ) = faDirectory)
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (30. Okt 2014 um 16:57 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Rekursive Dateisuche lässt Unterverzeichnisse aus

  Alt 30. Okt 2014, 17:38
Das Problem sind die fehlenden Klammern
Bei was?

Wenn hier if (Rec.Attr and faDirectory = faDirectory) :
AND wir immer vor = aufgelöst, also passt es.

Da aber alle Dateiattribute nur aus einem Bit bestehen, kann man das noch kürzen
if (Rec.Attr and faDirectory <> 0)

Das mit dem IN klappt nicht, da Attr ein Integer und kein Set ist, außerdem sind die fa-Konstanten Bit-Masken und keine Indize.
(gut, man könnte den Integer in ein set of 0..31 , aber dann ist noch das Problem mit den Konstanten, also wenn dann lieber direkt in ein TAttributeSet casten und als Property in TSearchRec rein)
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (30. Okt 2014 um 17:41 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.666 Beiträge
 
Delphi 12 Athens
 
#10

AW: Rekursive Dateisuche lässt Unterverzeichnisse aus

  Alt 30. Okt 2014, 18:02
Wenn hier if (Rec.Attr and faDirectory = faDirectory) :
AND wir immer vor = aufgelöst, also passt es.
Muss ja so sein, denn dies
if (Rec.Attr and (faDirectory = faDirectory)) wird gar nicht kompiliert, dazu müsste man schon explizit Rec.Attr nach Boolean casten, dann ist man aber auch selbst Schuld, wenn es nicht stimmt.

Da aber alle Dateiattribute nur aus einem Bit bestehen, kann man das noch kürzen
if (Rec.Attr and faDirectory <> 0)
Kann man, hat aber keinen Mehrwert. Wozu soll man sich Gedanken machen (oder nachsehen), ob wirklich alle Attribute 2er-Potenzen sind? Da bleib ich lieber bei der gezeigten Schreibweise, das passt immer, selbst wenn irgendwann mal ein mehrbittiges Attribut hinzukommen sollte.
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
Antwort Antwort
Seite 1 von 2  1 2      


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 11:40 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