Hi!
bernd670
Sehr konstruktiv ist das nicht!
Es sind mehrere Formate die nicht gelesen werden, ist das beabsichtigte Zensierung?
Nun gut ich benutze die Funktion nicht, Interessant ist das schon!
Lg Kleiner
Hi!
bernd670
Sehr konstruktiv ist das nicht!
Es sind mehrere Formate die nicht gelesen werden, ist das beabsichtigte Zensierung?
Nun gut ich benutze die Funktion nicht, Interessant ist das schon!
Lg Kleiner
_FileReadToArray ist nich dazu gedacht andere Dateien als Texte zu lesen. Wie soll das auch gehen?
Es ist spezialisiert die Texte bei @CRLF oder @LF in ein Array aufzusplitten.
Zitatwenn eine Funktion File Read ToArray heist dann sollte sie schon das machen was sie Verspricht
_Filereadtoarray macht genau das was es verspricht!
Allerdings sollte man schon verstehen, was man da macht.....
Du VERSUCHST eine EXE-Datei einzulesen, was passiert?
_filereadtoarray öffnet die Datei, liest bis zum ersten Nullbyte die Daten (wieso auch mehr, eingestellt ist Lesemodus 0 ) und schreibt dieses Ergebnis in ein Array, soweit völlig richtig!
Die ersten beiden Bytes einer EXE-Datei sind M und Z dann folgen einige Nullbytes...
Schreib einfach die Funktion so um, so wie du sie brauchst, wo ist das Problem?
Func _FileReadToArray($sFilePath, ByRef $aArray)
[/autoit] [autoit][/autoit] [autoit]Local $hFile = FileOpen($sFilePath, $FO_READ) ;**********hier würde ich im binärmodus öffnen*********
[/autoit] [autoit][/autoit] [autoit]If $hFile = -1 Then Return SetError(1, 0, 0);; unable to open the file
;; Read the file and remove any trailing white spaces
Local $aFile = FileRead($hFile, FileGetSize($sFilePath))
;~ $aFile = StringStripWS($aFile, 2)
; remove last line separator if any at the end of the file
If StringRight($aFile, 1) = @LF Then $aFile = StringTrimRight($aFile, 1)
If StringRight($aFile, 1) = @CR Then $aFile = StringTrimRight($aFile, 1)
FileClose($hFile)
If StringInStr($aFile, @LF) Then
$aArray = StringSplit(StringStripCR($aFile), @LF)
ElseIf StringInStr($aFile, @CR) Then ;; @LF does not exist so split on the @CR
$aArray = StringSplit($aFile, @CR)
Else ;; unable to split the file
If StringLen($aFile) Then
Dim $aArray[2] = [1, $aFile]
Else
Return SetError(2, 0, 0)
EndIf
EndIf
Return 1
EndFunc ;==>_FileReadToArray
Übrigens, wenn man den Cursor auf den Funktionsnamen stellt und dann Strg+J drückt, öffnet Scite die UDF an der Position der Funktion
Hi!
Leute ist mir kla, das ist mir halt aufgefallen
Durch machne Optimierungen der UDF-Funktionen bin ich heute an _FileReadToArray hängen geblieben .
Edit:/ Ich schlisse das Thema, auch wenn diese Funktion daruf ausgelegt ist hat sie bei der Einfachen Datei ein Fehler die manchen User nicht bewust ist.
Lg Kleiner