Seite 2 von 2

Verfasst: 24.12.2004 13:05
von MVXA
Hab den Wurm /:-> (denke ich zumindest)

Die Procedure GetFileDate hat die Datei nach dem öffnen nicht geschlossen. das macht es MD5FileFingerprint unmöglich sie ein 2. mal zu öffnen. Hier die veränderte Procedure:

Code: Alles auswählen

Procedure.l GetFileDate(strFileName.s)
    DefType.l hFile
    DefType.s FileStamp
    DefType.FILETIME Create, Access, Write
    DefType.SYSTEMTIME SysTime
    
    hFile = OpenFile(#PB_Any, strFileName)
    
    GetFileTime_(UseFile(hFile), @Create, @Access, @Write)
    FileTimeToSystemTime_(@Create, @SysTime)
    CloseFile(hFile)
    
    If SysTime\wDay < 10   : FileStamp+"0"+Str(SysTime\wDay)   : Else : FileStamp+Str(SysTime\wDay)   : EndIf
    FileStamp+"."
    If SysTime\wMonth < 10 : FileStamp+"0"+Str(SysTime\wMonth) : Else : FileStamp+Str(SysTime\wMonth) : EndIf
    FileStamp+"."
    FileStamp+Str(SysTime\wYear)
    FileStamp+" "
    If SysTime\wHour < 10   : FileStamp+"0"+Str(SysTime\wHour)   : Else : FileStamp+Str(SysTime\wHour)   : EndIf
    FileStamp+":"
    If SysTime\wMinute < 10 : FileStamp+"0"+Str(SysTime\wMinute) : Else : FileStamp+Str(SysTime\wMinute) : EndIf 
    FileStamp+":"
    If SysTime\wSecond < 10 : FileStamp+"0"+Str(SysTime\wSecond) : Else : FileStamp+Str(SysTime\wSecond) : EndIf
    
    ProcedureReturn ParseDate("%dd.%mm.%yyyy %hh:%ii:%ss", FileStamp)
EndProcedure 

Verfasst: 25.12.2004 18:11
von Agent
Hi LittleFurz.

Hm...du hast die Proc ein wenig abgewandelt. Das mit dem CloseFile leuchtet mir ein. Aber ist es nicht falsch closefile(hFile) zu benutzen, also das handle??? ich meine, das oben bei openfile(), #pb_any stehen muss, stimmt. so konnte das eh nicht gehen, da die filenr. 0 solange blockiert wurde, bis sie vom system geschlossen wurde, solange konnten die anderen threads die nr. nicht benutzen - klar. aber bei closefile das handle??? gehört da nicht die filenr hin? aber zumindest geht es besser wie vorher...dafür erstmal vielen dank.

Verfasst: 25.12.2004 22:38
von MVXA
einfache Antwort: . Ich benutze statt dem ID system von PB das "hWnd" System. Ich speichere die hWnd (hFile) und kann dan mit dieser an der Datei rumfummeln wie ich will.

Keine Ursache :allright: (habe die Funktion selbst benötigt)