Delphi-PRAXiS
Seite 4 von 6   « Erste     234 56      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Rekursiv Suchen (https://www.delphipraxis.net/187222-rekursiv-suchen.html)

GroZ 10. Nov 2015 13:14

AW: Rekursiv Suchen
 
Zitat:

Zitat von haentschman (Beitrag 1321003)
Welche Zeile / Anweisung? Wie sind die Werte der Parameter? An welchem Datum ist Weihnachten? :roll:

Delphi-Quellcode:
repeat
          if (X.Name <> '.') and (X.Name <> '..') and ((X.Attr and faDirectory) <> 0) then
          begin  //Geht hier nicht rein
            Result:=VerzeichnisMitFRPzuPDF(ExtractFilePath(PfadUndDateimaske)+X.Name+'\'+ExtractFileName(PfadUndDateimaske),SubDirs);
            if not Result then
              break;
          end;
        until FindNext(X) <> 0;
Hier springt er im Debugmodus von repeat zu until.
Dann kommt halt die Exception.
Die Parameterwerte sind ein einfaches Verzeichnis 'C:\Files\FRP\2010\September' beispielsweise.
Der Ordner besteht aus 8 FRP Dateien 1 Ordner in dem befinden sich 3 FRP Dateien und noch 1 Ordner der auch 3 FRP Dateien beinhaltet.
Weihnachten ist am 24.12. :lol:

baumina 10. Nov 2015 13:22

AW: Rekursiv Suchen
 
EDIT : ** gelöscht **

GroZ 10. Nov 2015 13:25

AW: Rekursiv Suchen
 
Zitat:

Zitat von baumina (Beitrag 1321005)
liegt wohl am
Delphi-Quellcode:
(X.Attr and faDirectory) <> 0

Habs durch
Delphi-Quellcode:
= 0
ersetzt. Jetzt kommt zwar keine Exception aber er schließt einfach.
Sprich das Unterverzeichnis wird immer noch nicht angerührt

TiGü 10. Nov 2015 13:28

AW: Rekursiv Suchen
 
Zitat:

Zitat von GroZ (Beitrag 1321007)
Zitat:

Zitat von baumina (Beitrag 1321005)
liegt wohl am
Delphi-Quellcode:
(X.Attr and faDirectory) <> 0

Habs durch
Delphi-Quellcode:
= 0
ersetzt. Jetzt kommt zwar keine Exception aber er schließt einfach.
Sprich das Unterverzeichnis wird immer noch nicht angerührt

Baumina meinte das sicher anderes.
Wie sieht denn dein Call Stack aus?

Ungefähr so?
Code:
:77712312 ntdll.RtlEnterCriticalSection + 0x12
:758ca25d KERNELBASE.FindNextFileW + 0x46
:00420704 FindNext + $10
FRPtoPDF.FRPtoPDF
:76f5337a kernel32.BaseThreadInitThunk + 0x12
:77729882 ntdll.RtlInitializeExceptionChain + 0x63
:77729855 ntdll.RtlInitializeExceptionChain + 0x36

GroZ 10. Nov 2015 13:30

AW: Rekursiv Suchen
 
Zitat:

Zitat von TiGü (Beitrag 1321008)
Zitat:

Zitat von GroZ (Beitrag 1321007)
Zitat:

Zitat von baumina (Beitrag 1321005)
liegt wohl am
Delphi-Quellcode:
(X.Attr and faDirectory) <> 0

Habs durch
Delphi-Quellcode:
= 0
ersetzt. Jetzt kommt zwar keine Exception aber er schließt einfach.
Sprich das Unterverzeichnis wird immer noch nicht angerührt

Baumina meinte das sicher anderes.
Wie sieht denn dein Call Stack aus?

Ungefähr so?
Code:
:77712312 ntdll.RtlEnterCriticalSection + 0x12
:758ca25d KERNELBASE.FindNextFileW + 0x46
:00420704 FindNext + $10
FRPtoPDF.FRPtoPDF
:76f5337a kernel32.BaseThreadInitThunk + 0x12
:77729882 ntdll.RtlInitializeExceptionChain + 0x63
:77729855 ntdll.RtlInitializeExceptionChain + 0x36

Tut mir leid für die blöde Frage aber was ist ein Call Stack und wo sehe ich den? Hab davon noch nie was gehört :? :oops:

TiGü 10. Nov 2015 13:35

AW: Rekursiv Suchen
 
Zitat:

Zitat von GroZ (Beitrag 1321010)
Tut mir leid für die blöde Frage aber was ist ein Call Stack und wo sehe ich den? Hab davon noch nie was gehört :? :oops:

Sagt dir der Begriff Aufruf-Stack etwas?

Schaue mal in diesen kostenlosen PDF auf Seite 147:
http://downloads.delphi-treff.de/DelphiStarter.pdf

Wenn du das Fenster nicht kennst dann probiere doch mal in der IDE Menü -> Ansicht -> Debug Fenster -> Aufruf-Stack.

GroZ 10. Nov 2015 13:42

AW: Rekursiv Suchen
 
Muss ich das irgendwie aktivieren? Weil bei mir steht nur "Auf den Prozess kann nicht zugegriffen werden"
Oder mache ich etwas falsch?

TiGü 10. Nov 2015 13:52

AW: Rekursiv Suchen
 
Zitat:

Zitat von GroZ (Beitrag 1321014)
Muss ich das irgendwie aktivieren? Weil bei mir steht nur "Auf den Prozess kann nicht zugegriffen werden"
Oder mache ich etwas falsch?

Nur wenn das Programm läuft und in einen Haltepunkt gelaufen ist oder wahlweise wenn eine Exception hochploppt.
Also NICHT im "Programmiermodus" (normales Layout).

GroZ 10. Nov 2015 14:01

AW: Rekursiv Suchen
 
bin anscheinend zu doof dazu...
sobald ich das Programm starte geht das Fenster weg und erst wenn ich STRG+F2 drücke nach der Exception kommt das wieder. Trotzdem steht da noch nix drin..

baumina 10. Nov 2015 14:13

AW: Rekursiv Suchen
 
Also ich denke, dass wenn du z.B. nach "C:\temp\*.FRP" mit FindNirst/FindNext suchst, dass du die Unterverzeichnisse damit nicht erwischen kannst.

Deine repeat-Schleife müsst eigentlich ohne Exception durchlaufen.

Die Exception kann ich mir eigenlich nur bei diesem Block vorstellen:
Delphi-Quellcode:
  try
     PDFExport.ShowDialog := false;
     frReport.ShowProgress := false;
     try
       frReport.LoadPreparedReport(AFRPFile);
       frReport.ExportTo(PDFExport, APDFFile);
     except
       exit;
     end;

   finally
     PDFExport.Free;
     frReport.Free;
   end;
Hier mal nen Haltepunkt und mit F8 durchsteppen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:09 Uhr.
Seite 4 von 6   « Erste     234 56      

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