Ordnerinhalt inkl Unterordner in eine Text Datei speichern

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
udg
Beiträge: 566
Registriert: 20.06.2013 23:27

Ordnerinhalt inkl Unterordner in eine Text Datei speichern

Beitrag von udg »

Ich hab hier Probleme Ordner mit Unterordner einzulesen und die darin befindlichen Dateien in eine Text Datei zu speichern. Später möchte ich per Checkbox diverse Endungen von der Suche ausklammern wollen.
Wärend des scannens soll noch ein Progressbar rein.

Wie wende ich denn recursive an, dass wirklich alle Unterverzeichnisse erfasst werden? Darüber finde ich in der Hilfe nichts.
Beim speichern der Text Datei wird immer nur die letze Datei des ersten Ordner als Text hineingespeichert. Nicht der komplette Ordnerinhalt :(

NACHTRAG:

inzwischen habe ich alles so weit fertig dass es mir die Text Datei mit Unterverzeichnisse erstellt.

jetzt noch die Checkboxen Aktivieren und einen Progressbar rein.

CODE AKTUALISIERT (dickes Danke auch an Bisonte)
PureBasic v5.43 LTS - Compiler Option hab ich eingestellt: Create Unicode executable

Code: Alles auswählen

EnableExplicit

;{ Enumeration Section
Enumeration Windows
  #Window_0
EndEnumeration
Enumeration Gadgets
  #Button_Start
  #String_Path
  #Button_Ordner
  #CheckBox_srt
  #CheckBox_jpg
  #CheckBox_bmp
  #CheckBox_mp3
  #LineTopEdFrame
  #LineLeftEdFrame
  #LineRightEdFrame
  #LineBottomEdFrame
  #Gadget_LineLeftEdFrame
  #Gadget_LineRightEdFrame
  #Gadget_LineBottomEdFrame
  #Gadget_LineTopEdFrame
  #Frame_Text
  #Frame3D
  #CheckBox_Custom
  #String_Custom
  #Inhalt_txt
  #Container_CheckboxenUSW
  #Header
  #Exit_btn
  #Gadget_exit
  #CheckBox_srt_Text
  #CheckBox_jpg_Text
  #CheckBox_bmp_Text
  #CheckBox_mp3_Text
  #Img_Fat_Line
  #Fat_Line
  #Triangle
  #Gadget_Triangle
  #Img_Footer
  #Footer
  #Triangle_Button
  #Gadget_Triangle_Button
  #LineTop
  #LineLeft
  #LineRight
  #LineBottom
  #Gadget_LineTop
  #Gadget_LineLeft
  #Gadget_LineRight
  #Gadget_LineBottom
  #Footer_Text
EndEnumeration
Enumeration Fonts
  #Font1
  #Font2
  #Font3
  #PB_Atny
EndEnumeration
;}

Global Path$, File2$, InitialPath$, Dir$, File$, font$
Define.i Event, EventWindow, EventGadget, EventType, EventMenu, Start, Stop 
Define NewList Files.s()
Define NewList Clean.s()

LoadFont(#Font1, "Microsoft Sans Serif", 9, #PB_Font_HighQuality)
LoadFont(#Font2, "Microsoft Sans Serif", 12, #PB_Font_HighQuality)


Procedure IncTextGadget(Gadget, x, y, Width, Height, Text$, Flags, FColor.l = -1, BColor.l = -1, FontID = 0)
  
  Protected ID
  
  ID = TextGadget(Gadget, x, y, Width, Height, Text$, Flags)
  If Gadget = #PB_Any : Gadget = ID : EndIf
  
  If FColor > -1
    SetGadgetColor(Gadget, #PB_Gadget_FrontColor, FColor)
  EndIf
  If BColor > -1
    SetGadgetColor(Gadget, #PB_Gadget_BackColor, BColor)
  EndIf
  
  If FontID <> 0
    SetGadgetFont(Gadget, FontID)
  EndIf
  
  ProcedureReturn ID
  
EndProcedure
Procedure ExamDir(Directory.s, List Files.s())
  
  Protected Dir, Name.s
  
  If Right(Directory, 1) <> "\" : Directory + "\" : EndIf ; add Backslash if no one exist
  
  Dir = ExamineDirectory(#PB_Any, Directory, "")
  
  If Dir
    While NextDirectoryEntry(Dir)
      Name = DirectoryEntryName(Dir)
      If DirectoryEntryType(Dir) = #PB_DirectoryEntry_Directory
        If Name <> "." And Name <> ".."
          ExamDir(Directory + Name, Files())
        EndIf
      Else
        AddElement(Files()) ; create a new listElement
        Files() = Directory + Name
      EndIf  
      While WindowEvent() : Wend
    Wend
    FinishDirectory(Dir)
  EndIf
  
EndProcedure
Procedure WriteDirText(File.s, List Files.s())
  
  Protected A
  Protected txt$
  txt$ = FormatDate("%dd.%mm.%yyyy um %hh:%ii:%ss", Date())
  If ListSize(Files()) > 0 ; is there something in the list?
    A = CreateFile(#PB_Any, File)
    If a 
      WriteStringN(A, "")
      WriteStringN(A, "Folder2Text-Tool by udg aka inc in 2016")
      WriteStringN(A, LSet("", 63, "-"))
      WriteStringN(A, "Übersicht der eingelesenen Ordner vom " + txt$)
      WriteStringN(A, "")
      WriteStringN(A, LSet("", 63, "-"))
      WriteStringN(A, "")
      WriteStringN(A, "")
      ForEach Files()
        WriteStringN(A, Files())
      Next
      CloseFile(A)
      SetGadgetText(#Button_Start, "Text Datei gespeichert")
    EndIf
  EndIf
  
EndProcedure
Procedure RemoveFromList(List Files.s(), List Clean.s(), Extension.s)
  
  ForEach Files()
    If LCase(GetExtensionPart(Files())) <> LCase(Extension)
      AddElement(Clean())
      Clean() = Files()
    EndIf
  Next
  
EndProcedure
Procedure StringGadgetVCenter(GadgetID)
  Protected hwndEdit
  Protected LineCount
  Protected hdc
  Protected fsz.SIZE
  Protected eRect.RECT
  
  hwndEdit = GadgetID(GadgetID)
  
  LineCount = SendMessage_(hwndEdit,#EM_GETLINECOUNT, 0, 0)
  
  hdc = GetDC_(hwndEdit)
  SelectObject_(hdc,GetGadgetFont(GadgetID))
  GetTextExtentPoint32_(hdc,"ABC",3,fsz.SIZE)
  ReleaseDC_(hwndEdit,hdc)   
  
  GetClientRect_(hwndEdit,eRect.RECT)
  eRect\top = (GadgetHeight(GadgetID) - fsz\cy * LineCount) / 2
  eRect\bottom = eRect\top + (fsz\cy * LineCount) + 4
  
  If eRect\bottom < GadgetHeight(GadgetID)
    SendMessage_(hwndEdit,#EM_SETRECT,0,eRect)
  EndIf
EndProcedure
Procedure OpenWindow_Window_0()
  Protected FColor
  Protected BColor
  
  If OpenWindow(#Window_0, 965, 377, 415, 450, "", #PB_Window_BorderLess|#PB_Window_ScreenCentered|#PB_Window_Invisible)
    SetWindowColor(0, RGB(128, 128, 128))
    SetClassLongPtr_(WindowID(0), #GCL_STYLE, #CS_DROPSHADOW)
    
    ;1px FRAME TOOL EDGES
    ;LineLeft
    CreateImage(#LineTop,415,1,32,RGB(40,40,40))
    StartDrawing(ImageOutput(#LineTop))
    StopDrawing()
    ;LineLeft
    CreateImage(#LineLeft,1,450,32,RGB(40,40,40))
    StartDrawing(ImageOutput(#LineLeft))
    StopDrawing()
    ;LineRight
    CreateImage(#LineRight,1,450,32,RGB(40,40,40))
    StartDrawing(ImageOutput(#LineRight))
    StopDrawing()
    ;LineBottom
    CreateImage(#LineBottom,415,1,32,RGB(145, 30, 135))
    StartDrawing(ImageOutput(#LineBottom))
    StopDrawing()
    
    ImageGadget(#Gadget_LineTop,0,0,1,415,ImageID(#LineTop))
    ImageGadget(#Gadget_LineLeft,0,0,1,500,ImageID(#LineLeft))
    ImageGadget(#Gadget_LineRight,414,0,1,500,ImageID(#LineRight))
    ImageGadget(#Gadget_LineBottom,1,449,415,1,ImageID(#LineBottom)) 
    
    ;HEADER
    IncTextGadget(#Header, 0, 0, 355, 61, "  Ordnerinhalt in TXT Datei schreiben", #SS_CENTERIMAGE, RGB(187, 187, 187), RGB(40,40,40), FontID(#Font2))
    ;HEADER BORDER BOTTOM  
    CreateImage(#Img_Fat_Line, 414, 5)
    StartDrawing(ImageOutput(#Img_Fat_Line))
    Box(0,0,OutputWidth(),OutputHeight(),RGB(40,40,40))
    StopDrawing()
    ImageGadget(#Fat_Line, 1, 61, 0, 0, ImageID(#Img_Fat_Line))
    DisableGadget(#Fat_Line, #True)
    ;TRIANGLE
    CreateImage(#Triangle,394,11,32,RGB(128, 128, 128))
    StartDrawing(ImageOutput(#Triangle))
    ;LINE LEFT
    LineXY(0, 0, 10, 10, RGB(40, 40, 40))
    ;LINE RIGHT
    LineXY(10, 10, 20, 0, RGB(40, 40, 40))
    ;PINK LINE RIGHT
    LineXY(11, 11, 21, 0, RGB(145, 30, 134))
    LineXY(0, 0, 394, 0, RGB(145, 30, 134))
    ;LINE TOP
    LineXY(0, 0, 20, 0, RGB(40, 40, 40))
    FillArea(3, 2, RGB(40, 40, 40), RGB(40, 40, 40))
    StopDrawing()
    ImageGadget(#Gadget_Triangle,20,66,39,394,ImageID(#Triangle))
    
    ;EXIT BUTTON
    CreateImage(#Exit_btn,60,61)
    StartDrawing(ImageOutput(#Exit_btn))
    FillArea(1,1,-1,RGB(40, 40, 40))
    Line(3,56,54,-54,RGB(208, 208, 208))
    Line(3,4,54,54,RGB(208, 208, 208))
    StopDrawing()
    ImageGadget(#Gadget_exit,WindowWidth(0)-60,0,60,60,ImageID(#Exit_btn))
    
    ContainerGadget(#Container_CheckboxenUSW, 24, 80, 380, 324, #PB_Container_BorderLess)
    SetGadgetColor(#Container_CheckboxenUSW, #PB_Gadget_BackColor, RGB(128, 128, 128))
    
    ;FRAME AROUND THE CHECKBOXES
    ;LineTop
    CreateImage(#LineTopEdFrame,371,1,32,RGB(102, 102, 102))
    StartDrawing(ImageOutput(#LineTopEdFrame))
    StopDrawing()
    ;LineLeftEdFrame
    CreateImage(#LineLeftEdFrame,1,40,32,RGB(102, 102, 102))
    StartDrawing(ImageOutput(#LineLeftEdFrame))
    StopDrawing()
    ;LineRightEdFrame
    CreateImage(#LineRightEdFrame,1,40,32,RGB(102, 102, 102))
    StartDrawing(ImageOutput(#LineRightEdFrame))
    StopDrawing()
    ;LineBottomEdFrame
    CreateImage(#LineBottomEdFrame,370,1,32,RGB(102, 102, 102))
    StartDrawing(ImageOutput(#LineBottomEdFrame))
    StopDrawing()
    
    CheckBoxGadget(#CheckBox_srt, 10, 35, 13, 13, "")
    IncTextGadget(#CheckBox_srt_Text, 26, 32, 25, 16, "srt", 0, -1, RGB(128, 128, 128), FontID(#Font1))
    
    CheckBoxGadget(#CheckBox_jpg, 55, 35, 13, 13, "")
    IncTextGadget(#CheckBox_jpg_Text, 71, 32, 25, 16, "jpg", 0, -1, RGB(128, 128, 128), FontID(#Font1))
    
    CheckBoxGadget(#CheckBox_bmp, 100, 35, 13, 13, "")
    IncTextGadget(#CheckBox_bmp_Text, 117, 32, 27, 16, "bmp", 0, -1, RGB(128, 128, 128), FontID(#Font1))
    
    CheckBoxGadget(#CheckBox_mp3, 147, 35, 13, 13, "")
    IncTextGadget(#CheckBox_mp3_Text, 163, 32, 27, 16, "mp3", 0, -1, RGB(128, 128, 128), FontID(#Font1))
    
    CheckBoxGadget(#CheckBox_Custom, 234, 35, 13, 13, "")
    StringGadget(#String_Custom, 250, 32, 105, 18, "Endung angeben", #PB_String_BorderLess|#ES_MULTILINE|#SS_CENTER)
    SetGadgetFont(#String_Custom, FontID(#Font1))
    StringGadgetVCenter(#String_Custom) 
    SetGadgetColor(#String_Custom, #PB_Gadget_FrontColor, RGB(136, 136, 136))
    
    ;OPEN PATH BUTTON
    IncTextGadget(#Button_Ordner, 0, 100, 367, 30, "Ordner/ Verzeichnis wählen", #SS_CENTERIMAGE|#SS_NOTIFY|#SS_CENTER, RGB(40, 40, 40), RGB(177, 177, 177), FontID(#Font2))
    ;SHOW PATH
    StringGadget(#String_Path, 0, 148, 367, 35, "", #PB_String_BorderLess|#ES_MULTILINE|#SS_CENTER)
    SetGadgetFont(#String_Path, FontID(#Font1))
    StringGadgetVCenter(#String_Path)   
    
    ;START BUTTON
    IncTextGadget(#Button_Start, 0, 290, 367, 30, "Starten", #SS_CENTERIMAGE|#SS_NOTIFY|#SS_CENTER, RGB(40, 40, 40), RGB(177, 177, 177), FontID(#Font2))
    
    CloseGadgetList()
    
    ;TRIANGLE BOTTOM - START BUTTON
    CreateImage(#Triangle_Button,30,14,32,RGB(128, 128, 128))
    StartDrawing(ImageOutput(#Triangle_Button))
    ;DARK LINE LEFT
    LineXY(1, 0, 13, 12, RGB(16, 16, 16))
    ;LINE LEFT
    LineXY(3, 0, 13, 10, RGB(177, 177, 177))
    ;LINE RIGHT
    LineXY(13, 10, 23, 0, RGB(177, 177, 177))
    ;Dark LINE RIGHT
    LineXY(14, 11, 25, 0, RGB(16, 16, 16))
    ;LINE TOP
    LineXY(3, 0, 23, 0, RGB(177, 177, 177))
    FillArea(6, 2, RGB(177, 177, 177), RGB(177, 177, 177))
    StopDrawing()
    ImageGadget(#Gadget_Triangle_Button,192,210,39,30,ImageID(#Triangle_Button))
    
    ;DRAW 1px FRAME AROUND THE CHECKBOXES
    ImageGadget(#Gadget_LineTopEdFrame,22,100,1,1,ImageID(#LineTopEdFrame))
    ImageGadget(#Gadget_LineLeftEdFrame,22,101,1,101,ImageID(#LineLeftEdFrame))
    ImageGadget(#Gadget_LineRightEdFrame,392,101,1,101,ImageID(#LineRightEdFrame))
    ImageGadget(#Gadget_LineBottomEdFrame,23,140,1,101,ImageID(#LineBottomEdFrame)) 
    
    IncTextGadget(#Frame_Text, 30, 90, 180, 16, " ignoriere folgende Datei Typen:", 0, RGB(217, 217, 217), RGB(128, 128, 128), FontID(#Font1))
    
    ;FOOTER
    CreateImage(#Img_Footer, 450, 30)
    StartDrawing(ImageOutput(#Img_Footer))
    Box(0,0,OutputWidth(),OutputHeight(),RGB(40,40,40))
    StopDrawing()
    ImageGadget(#Footer, 0, WindowHeight(0) - 31, 0, 0, ImageID(#Img_Footer)) : DisableGadget(#Footer, #True)
    ;FOOTER TEXT
    IncTextGadget(#Footer_Text, 95, 423, 220, 20, "coding by unknown design group 2k16", #SS_CENTERIMAGE|#SS_CENTER, RGB(95, 95, 95), RGB(40,40,40), FontID(#Font1))
    
    HideWindow(#Window_0, #False)
    
  Else
    End
  EndIf
  
EndProcedure

OpenWindow_Window_0()

Repeat
  Event = WaitWindowEvent()
  Select Event
      
    Case #PB_Event_Gadget
      EventGadget = EventGadget()
      EventType = EventType()
      
      Select EventGadget()
        ;AUTOHIGHLIGHT TEXT IN STRINGGADGET onCLICK  
        Case #String_Custom
          If EventType() = #PB_EventType_Focus
            SendMessage_(GadgetID(EventGadget()), #EM_SETSEL, Len(GetGadgetText(EventGadget())), 0)
            SetGadgetColor(#String_Custom, #PB_Gadget_FrontColor, RGB(40,40,40))
          EndIf  
          
        Case #Button_Ordner
          SetGadgetText(#Button_Start, "Starten")
          InitialPath$ = "C:\"
          Dir$ = PathRequester("Bitte Pfad auswählen", InitialPath$)
          If Dir$
            SetGadgetText(#String_Path, Dir$)
          EndIf  
          
        Case #Button_Start
          
          ;CALL SAVE FILE REQUESTER 
          File$=SaveFileRequester("Info Datei speichern", "C:\info.txt ", "TXT FILE(*.txt)|*.txt", 0)   
          
          If File$ <> "" And Dir$ <> ""
            If Right(Dir$,1)<>"\":Dir$+"\":EndIf
            ClearList(Files())
            ClearList(Clean())
            ExamDir(Dir$, Files())

            If GetGadgetState(#CheckBox_bmp)
              RemoveFromList(Files(), Clean(), "bmp")
              ClearList(Files()) : CopyList(Clean(), Files()) : ClearList(Clean())
            EndIf
            If GetGadgetState(#CheckBox_jpg)
              RemoveFromList(Files(), Clean(), "jpg")
              ClearList(Files()) : CopyList(Clean(), Files()) : ClearList(Clean())
            EndIf        
            If GetGadgetState(#CheckBox_mp3)
              RemoveFromList(Files(), Clean(), "mp3")
              ClearList(Files()) : CopyList(Clean(), Files()) : ClearList(Clean())
            EndIf         
            If GetGadgetState(#CheckBox_srt)
              RemoveFromList(Files(), Clean(), "srt")
              ClearList(Files()) : CopyList(Clean(), Files()) : ClearList(Clean())
            EndIf 
            If GetGadgetState(#CheckBox_Custom)
              RemoveFromList(Files(), Clean(), GetGadgetText(#String_Custom))
              ClearList(Files()) : CopyList(Clean(), Files()) : ClearList(Clean())
            EndIf 

            WriteDirText(File$, Files())
            
          EndIf
          
        Case #Gadget_exit
          End
      EndSelect
      
      
      ;DRAG TOOL WITH MOUSE
    Case #WM_LBUTTONDOWN
      If WindowMouseX(#Window_0) >= 0 And WindowMouseX(#Window_0) <= 355 And WindowMouseY(#Window_0) >= 0 And WindowMouseY(#Window_0) <= 61
        SendMessage_(WindowID(#Window_0), #WM_NCLBUTTONDOWN, #HTCAPTION, 0)
      EndIf 
  EndSelect
  
ForEver
Zuletzt geändert von udg am 30.12.2016 04:49, insgesamt 7-mal geändert.
PB v5.43 LTS + v6.02 LTS | Windows 7 x86 + 11 x64 - Gforce RTX 4090 - AMD Ryzen 9 5900X 12-Core Processor 4.2 GHz - 64,0 GB RAM,
ASUSTEK TUF Gaming X570 Plus
ASUS ROG Thor-1200P Platinum (1200W, Aura Sync, OLED Display, 0dB-Cooling)
1x 1 TByte Samsung MZ-V7S500BW 970 EVO Plus 1 TB NVMe M.2 Internal SSD
1x 2 TByte Samsung MZ-V7S2T0BW 970 EVO Plus 2 TB NVMe M.2 Internal SSD
von BiSONTE!. Kauft Hardware gern bei ihm.
Monitor:
LG 38GL950G-B 95 (38 Zoll) Ultragear Curved 21: 9 UltraWide QHD IPS
Benutzeravatar
man-in-black
Beiträge: 362
Registriert: 21.08.2006 17:39

Re: Ordnerinhalt inkl Unterordner in eine Text Datei speiche

Beitrag von man-in-black »

Hi,

Rekursiv ist im grunde nichts anderes als selbstaufrufend. Das heißt, du solltest es erstmal
als eigenständige procedure verpacken. Innerhalb dieser gehst du dann so wie dus schon hast
alle ordnereinträge durch. Wenn du dann nen ordner findest, rufst du deine procedure auf und
übergibst den neuen pfad. Stells dir wie ein baum mit verzweigten ästen vor.
Jeder knoten/ordner entspricht einem procedureaufruf. Code gibts nicht.
Ist vom handy etwas zu umständlich. Findest aber auch
Bei purearea, was du brauchst.

MFG
MIB
(hab alles, kann alles, weiß alles!!^^)

Bild
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Ordnerinhalt inkl Unterordner in eine Text Datei speiche

Beitrag von ts-soft »

Genau, so im EventLoop ohne Procedure wird das eher nichts! Einfach mal suchen. Gibt hier genug Sourcen im Forum, sowie im
englischem Forum, CodeArchiv usw.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
udg
Beiträge: 566
Registriert: 20.06.2013 23:27

Re: Ordnerinhalt inkl Unterordner in eine Text Datei speiche

Beitrag von udg »

Danke für eure Antworten.
Ich hab gestern so lange nach Beispielen gesucht, dass ich dann aufgegeben habe. Natürlich nichts gefunden und deshalb einmal die Frage gestellt.
Irgend wann weiß man nicht mehr was in die Suche eingetippt werden kann um Infos zu finden.
Grüße
PB v5.43 LTS + v6.02 LTS | Windows 7 x86 + 11 x64 - Gforce RTX 4090 - AMD Ryzen 9 5900X 12-Core Processor 4.2 GHz - 64,0 GB RAM,
ASUSTEK TUF Gaming X570 Plus
ASUS ROG Thor-1200P Platinum (1200W, Aura Sync, OLED Display, 0dB-Cooling)
1x 1 TByte Samsung MZ-V7S500BW 970 EVO Plus 1 TB NVMe M.2 Internal SSD
1x 2 TByte Samsung MZ-V7S2T0BW 970 EVO Plus 2 TB NVMe M.2 Internal SSD
von BiSONTE!. Kauft Hardware gern bei ihm.
Monitor:
LG 38GL950G-B 95 (38 Zoll) Ultragear Curved 21: 9 UltraWide QHD IPS
Benutzeravatar
udg
Beiträge: 566
Registriert: 20.06.2013 23:27

Re: Ordnerinhalt inkl Unterordner in eine Text Datei speiche

Beitrag von udg »

hab den Code umgeschrieben und Proceduren angepasst
Zuletzt geändert von udg am 26.12.2016 22:50, insgesamt 1-mal geändert.
PB v5.43 LTS + v6.02 LTS | Windows 7 x86 + 11 x64 - Gforce RTX 4090 - AMD Ryzen 9 5900X 12-Core Processor 4.2 GHz - 64,0 GB RAM,
ASUSTEK TUF Gaming X570 Plus
ASUS ROG Thor-1200P Platinum (1200W, Aura Sync, OLED Display, 0dB-Cooling)
1x 1 TByte Samsung MZ-V7S500BW 970 EVO Plus 1 TB NVMe M.2 Internal SSD
1x 2 TByte Samsung MZ-V7S2T0BW 970 EVO Plus 2 TB NVMe M.2 Internal SSD
von BiSONTE!. Kauft Hardware gern bei ihm.
Monitor:
LG 38GL950G-B 95 (38 Zoll) Ultragear Curved 21: 9 UltraWide QHD IPS
Benutzeravatar
man-in-black
Beiträge: 362
Registriert: 21.08.2006 17:39

Re: Ordnerinhalt inkl Unterordner in eine Text Datei speiche

Beitrag von man-in-black »

Hi,

dein code zeigt jetzt nicht viel neues ;)
Guck dir einfach mal das olle Beispiel an:
http://www.purebasic.fr/english/viewtopic.php?t=6064

MFG
MIB
(hab alles, kann alles, weiß alles!!^^)

Bild
Benutzeravatar
udg
Beiträge: 566
Registriert: 20.06.2013 23:27

Re: Ordnerinhalt inkl Unterordner in eine Text Datei speiche

Beitrag von udg »

siehe erster Post...
Zuletzt geändert von udg am 26.12.2016 22:51, insgesamt 2-mal geändert.
PB v5.43 LTS + v6.02 LTS | Windows 7 x86 + 11 x64 - Gforce RTX 4090 - AMD Ryzen 9 5900X 12-Core Processor 4.2 GHz - 64,0 GB RAM,
ASUSTEK TUF Gaming X570 Plus
ASUS ROG Thor-1200P Platinum (1200W, Aura Sync, OLED Display, 0dB-Cooling)
1x 1 TByte Samsung MZ-V7S500BW 970 EVO Plus 1 TB NVMe M.2 Internal SSD
1x 2 TByte Samsung MZ-V7S2T0BW 970 EVO Plus 2 TB NVMe M.2 Internal SSD
von BiSONTE!. Kauft Hardware gern bei ihm.
Monitor:
LG 38GL950G-B 95 (38 Zoll) Ultragear Curved 21: 9 UltraWide QHD IPS
Benutzeravatar
man-in-black
Beiträge: 362
Registriert: 21.08.2006 17:39

Re: Ordnerinhalt inkl Unterordner in eine Text Datei speiche

Beitrag von man-in-black »

[OT] kleiner tipp. Es ist zwar nett, wenn du deinen code teilst, aber machs bitte nicht bei jedem
kleinen zwischenstand. Das bringt nicht viel Mehrwert, bläht den Thread dennoch auf.
Es ist übersichtlicher, wenn du deinen ersten Post anpasst. IMHO [/OT]
Bin daher jetzt auch nicht sicher, ob mit deinem letzten Beitrag eine Frage verbunden ist?
Damits nicht vollständig OT ist noch ein Tipp zur Progressbar. Lager deine Rekursion in einen
Thread aus. Dein Hauptthread kann dann ungestört Events abarbeiten und das Fenster neu zeichnen.
Das Problem gabs neulich schonmal an anderer Stelle im Forum.

MFG
MIB
(hab alles, kann alles, weiß alles!!^^)

Bild
Micha122
Beiträge: 248
Registriert: 02.10.2011 14:45
Wohnort: Sinzig
Kontaktdaten:

Re: Ordnerinhalt inkl Unterordner in eine Text Datei speiche

Beitrag von Micha122 »

Hi udg,
also bei mir friert das Fenster ein (keine Rückmeldung). :oops:

Die Eventschleife mag ja funktionieren .......eben Geschmacksache. Ich persönlich bevorzuge BindEvent().
Was das einfrieren des Fensters anbelangt, würde ich zu Threaded raten. Die Eventschleife wird zu lange verlassen.
übrigens, ich lese hier mit weil ich das Thema auch noch nicht so ganz kapiert habe. Die meisten Treffer zu "recursive" sind leider uralt.

Grüße, Michael
Barcodes for PureBasic - http://micha122.bplaced.net/
Benutzeravatar
udg
Beiträge: 566
Registriert: 20.06.2013 23:27

Re: Ordnerinhalt inkl Unterordner in eine Text Datei speiche

Beitrag von udg »

Micha122 hat geschrieben:Hi udg,
also bei mir friert das Fenster ein (keine Rückmeldung). :oops:

Die Eventschleife mag ja funktionieren .......eben Geschmacksache. Ich persönlich bevorzuge BindEvent().
Was das einfrieren des Fensters anbelangt, würde ich zu Threaded raten. Die Eventschleife wird zu lange verlassen.
übrigens, ich lese hier mit weil ich das Thema auch noch nicht so ganz kapiert habe. Die meisten Treffer zu "recursive" sind leider uralt.

Grüße, Michael
kannst Du nochmal den Code aus Beitrag 1 testen?

hab hier keine Probleme . Läuft
Mit Threads hab ich kaum Plan da bräucht ich Hilfe.
PB v5.43 LTS + v6.02 LTS | Windows 7 x86 + 11 x64 - Gforce RTX 4090 - AMD Ryzen 9 5900X 12-Core Processor 4.2 GHz - 64,0 GB RAM,
ASUSTEK TUF Gaming X570 Plus
ASUS ROG Thor-1200P Platinum (1200W, Aura Sync, OLED Display, 0dB-Cooling)
1x 1 TByte Samsung MZ-V7S500BW 970 EVO Plus 1 TB NVMe M.2 Internal SSD
1x 2 TByte Samsung MZ-V7S2T0BW 970 EVO Plus 2 TB NVMe M.2 Internal SSD
von BiSONTE!. Kauft Hardware gern bei ihm.
Monitor:
LG 38GL950G-B 95 (38 Zoll) Ultragear Curved 21: 9 UltraWide QHD IPS
Antworten