Problem mit Dateien, DirectoryEntry befehlen, usw.

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
zigapeda
Beiträge: 1753
Registriert: 06.03.2005 17:22
Wohnort: Kaufbeuren
Kontaktdaten:

Problem mit Dateien, DirectoryEntry befehlen, usw.

Beitrag von zigapeda »

So erstmal hallo,

ich hoffe der titel passt weil mir ist nix besseres eingefallen. Wenn nicht sollen ihn bitte die Mods ändern.

so dann zu meinem Problem. Der folgende code sollte erst alle dateien in dem Pure Basic Ordner Debugen und danach überprüfen ob sich eine datei geändert hat oder eine neue dazugekommen ist. ersteres funktioniert schon was eigentlich auch kein problem ist aber bei dem anderen hab ich irgendwo was falsch gemacht.

Code: Alles auswählen

ExamineDirectory(1,"C:\PureBASIC","*.*")

Structure bla
  name.s
  md5summe.s
EndStructure

NewList files.bla()

Repeat
If NextDirectoryEntry()
  a$ = DirectoryEntryName()
  AddElement(files())
  files()\name = a$
  files()\md5summe = MD5FileFingerprint("C:\PureBASIC\" + a$)
Else
  quit = 1
EndIf
Until quit = 1

Debug "-----------------------------------------"

ResetList(files())

While NextElement(files())
  If files()\md5summe <> ""
    Debug files()\name + " : " + files()\md5summe
  EndIf
Wend

Procedure.s searchlist(nametosearch.s)
  ForEach files()
    If files()\name = nametosearch
      ProcedureReturn files()\md5summe
    EndIf
  Next
EndProcedure

Debug "-----------------------------------------"

quit = 0

Repeat
  Repeat
    If NextDirectoryEntry()
      a$ = searchlist(DirectoryEntryName())
      Debug a$
      If a$ = ""
        Debug DirectoryEntryName()
      Else
        If a$ = MD5FileFingerprint("C:\PureBASIC\" + DirectoryEntryName())
        ;bla
        Else
          Debug DirectoryEntryName()
        EndIf
      EndIf
    Else
      ResetList(files())
      quit = 1
    EndIf
  Until quit = 1
  Debug "durchlauf abgeschlossen"
  Delay(1000)
ForEver
so jetzt entschuldige ich mich noch für unschlüssige namen (wie z.B. Structure bla() und die variablennamen z.B. a$) und für meine mangelhafte kommentierung und hoffe mir kann jemand helfen.

Schon mal danke im Voraus.
kluger Mann + kluge Frau = Romanze | dummer Mann + dumme Frau = Schwangerschaft
kluger Mann + dumme Frau = Affäre | dummer Mann + kluge Frau = Shopping <)
walker
Beiträge: 278
Registriert: 29.08.2004 18:39
Wohnort: Bayern

Beitrag von walker »

Hi,

vor dem Durchlauf (prüfen, ob sich was geändert hat) fehlt ein ExamineDirectory().... das NextDirectoryEntry() läuft so ins leere..... :roll:
..das ResetList(files) kannst Du Dir eigentlich sparen.... ForEach braucht das nicht...

Ulf
Benutzeravatar
zigapeda
Beiträge: 1753
Registriert: 06.03.2005 17:22
Wohnort: Kaufbeuren
Kontaktdaten:

Beitrag von zigapeda »

oh :oops:
jetzt hab ich den fehler auch gemerkt. Die if abfrage If NextDirectoryEntry() schlägt die ganze zeit fehl und dann will ich mit resetlist() wieder an anfang des verzeichnisses :lol: . ok also schnell das resetlist in examinedirectory geändert und fertig.

danke für die hilfe
kluger Mann + kluge Frau = Romanze | dummer Mann + dumme Frau = Schwangerschaft
kluger Mann + dumme Frau = Affäre | dummer Mann + kluge Frau = Shopping <)
Antworten