ich würde gerne eine Programm realisieren, dass ein Verzeichnis (P_RekursiveDateisuche(ImportPfad.s) permanent auf deren Inhalt überwacht. Die darin gefundenen Dateien sollen im späteren Verlauf eingelesen und entsprechend dem Inhalt weiterverarbeitet werden. Um zu sehen, dass das Programm läuft möchte ich gerne eine Progressbar einsetzen, die immer vor der Suche im Verzeichnis auf 0 gesetzt wird und sobald das Verzeichnis durchsucht wurde auf 100 & springt. Das ganze soll dann wiederholt werden, es sei denn jemand drückt die Pause oder Exit-Taste. Hatte an eine Repeat:Until- Schleife gedacht, aber dann friert mir immer das Fenster ein.
Hier mein bisheriger Code. Wahrscheinlich eine relativ einfache Sache, aber ich komme momentan einfach nicht drauf. Villeicht ist jemand von euch so nett, mir zu helfen.
Ich danke in jedem Fall im Vorraus.
Code: Alles auswählen
Enumeration 
  #BT_Exit
  #BT_StartPause
  #PRB_Dateidurchlauf
  #TG_Dateidurchlauf
  #Timer
EndEnumeration
Global quit
; Rekursive Dateisuche
Procedure P_RekursiveDateisuche(inputpath.s)
  
  dir = ExamineDirectory(#PB_Any, inputpath, "*.*")
  
  While NextDirectoryEntry(dir)
    
    dir_type.l        = DirectoryEntryType(dir)
    dir_name.s        = DirectoryEntryName(dir)
    dir_path.s        = inputpath + dir_name
    
    If dir_name = "." Or dir_name = ".." 
      Continue
    EndIf
    
    If dir_type = #PB_DirectoryEntry_File
      If ReadFile(0, dir_path)   ; wenn die Datei geöffnet werden konnte, setzen wir fort...
        While Eof(0) = 0         ; sich wiederholende Schleife bis das Ende der Datei ("end of file") erreicht ist
          line.s   = ReadString(0)
          
        Wend
        CloseFile(0)               ; schließen der zuvor geöffneten Datei
      Else
        MessageRequester("Information","Konnte Datei nicht öffnen!")
      EndIf
    EndIf
  Wend
  SetGadgetState(#PRB_Dateidurchlauf,100)
  FinishDirectory(dir)
EndProcedure
ImportPfad.s = "c:\temp\daten\"
ArchivPfad.s = "c:\temp\daten2\"
If OpenWindow(0, 0, 0, 600, 200 , "", #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget)
  
  ProgressBarGadget(#PRB_Dateidurchlauf,  10, 10, 580,  30, 0, 100,#PB_ProgressBar_Smooth)
  ButtonGadget(#BT_StartPause,150,100,150,50,"START")
  ButtonGadget(#BT_Exit,300,100,150,50,"EXIT")
  TextGadget(#TG_Dateidurchlauf,240,70,150,50,"Suche WMS-Telegramme")
  AddWindowTimer(0, #Timer, 20)
  
  Value = 0
  
  Repeat
    
    Event = WaitWindowEvent()
    
    Select event
        
              
      Case #PB_Event_Gadget
        
        Select EventGadget()
            
          Case #BT_StartPause
            
            If GetGadgetText(#BT_StartPause) = "START"
              SetGadgetText(#BT_StartPause,"PAUSE")
              SetGadgetState(#PRB_Dateidurchlauf,0)
              Repeat
                P_RekursiveDateisuche(ImportPfad.s)               
              Until quit = 1
            Else
              SetGadgetText(#BT_StartPause,"START")
            EndIf
            
            
            
          Case #BT_Exit
            quit = 1
            
        EndSelect ; Select EventGadget()
        
      Case #PB_Event_Menu
        
        
    EndSelect
    
    
  Until Event = #PB_Event_CloseWindow Or Quit = 1
EndIf frankmannb