ersmtal den Code, um den es geht:
Code: Select all
scanFileForBinary( filePath, byref searchBinary, searchBinarylength )
{
if !FileExist( filePath )
return -1
Offset := 0
fileObj := fileOpen( filePath, "r" )
Loop
{
if ( fileObj.ReadUChar() = numGet( searchBinary, Offset, "UChar" ) )
{
Offset++
if ( Offset = searchBinarylength )
{
foundPosition := fileObj.pos - Offset
fileObj.Close()
return %foundPosition%
}
}
else if ( offset )
fileObj.pos -= ( Offset - 1 ), Offset := 0
}
Until fileObj.AtEOF
fileObj.Close()
}
Die Routine klappt, mir ist aber aufgefallen, dass, obgleich 'fileObj.Close()' angegeben ist, dieses nicht zu funktionieren scheint. Ich kann z.B. entsprechende Dateien, die durch diese Routine geöffnet wurden, nicht löschen, verschieben, umbenennen, etc.
Oder mache ich was falsch?
Grüße,
Gucky.