Hex - Dez - Fileopen und nur Verwirrung

  • Moinsen,

    ich habe hier einen Mustercode. (Bitte das ist nur ein Testcode!) dieser liefert falsche Ergebisse! Für beigefügtes test.17 File stellt scih die Situation wie folgt dar:


    Die richtige Hex Folge ist:

    1B 40 FF 20 FF 20 FF FF 20 20 FF 20 20 FF 0D -- > Sagen alle Hex Editoren.

    Hex to _StringToHex liefert aber : 1B 40 C3 BF .... was falsch ist

    Wohingegen StringToASCIIArray ($aArray[$i] 27 64 255 32 .... liefert die Werte Decimal aber richtig.

    Ein File open habe ich schon mit allen Parametern ausprobiert (siehe Code) -- Änderung keine. Ich unterstelle aber das es daran liegt, dass das File Dos Zeichensatz hat?

    Danke

    Peter


    Code.... (bitte nicht schlagen das ist wirklich nur Testcode)

    ------------------------------------------------------------------------------

    #include <FileConstants.au3>

    #include <MsgBoxConstants.au3>

    #include <String.au3>

    #include <Array.au3>

    ;Assign the file path to a variable

    Local $sFilePath = "F:\TEMP\test.txt"

    ;Open the file temp.txt in append mode. If the folder C:\AutomationDevelopers does not exist, it will be created.

    Local $hFileOpen = FileOpen($sFilePath, 16)

    ;Local $hFileOpen = FileOpen($sFilePath, 48)

    ;Local $hFileOpen = FileOpen($sFilePath, 80)

    ;Local $hFileOpen = FileOpen($sFilePath, 144)

    ;Local $hFileOpen = FileOpen($sFilePath, 272)

    ;Local $hFileOpen = FileOpen($sFilePath, 528)

    ;Local $hFileOpen = FileOpen($sFilePath, 1040)

    ;Local $hFileOpen = FileOpen($sFilePath, 2064)

    ;Local $hFileOpen = FileOpen($sFilePath, 16400)

    ;Display a message box in case of any errors.

    If $hFileOpen = -1 Then

    MsgBox($MB_SYSTEMMODAL, "", "An error occurred when opening the file.")

    EndIf


    ;Set the file position to beginning for reading the data from the beginning of the file.

    ;FileSetPos($hFileOpen, 0, $FILE_BEGIN)

    ;Read the data into an array using the file handle.

    Local $aArray = FileReadToArray($hFileOpen)

    _ArrayDisplay($aArray, "file im array")

    If @error Then

    MsgBox($MB_SYSTEMMODAL, "", "There was an error reading the file. @error: " & @error)

    Else

    For $i = 0 To UBound($aArray) - 1 ; Loop through the array.

    MsgBox(0, "in der schleife " & ($i+1), $aArray[$i]) ; Display the contents of the array.

    MsgBox(0, "hex " & ($i+1), _StringToHex ($aArray[$i])) ; Display the contents of the array.

    $a_arr = StringToASCIIArray ($aArray[$i])

    _ArrayDisplay($a_arr, "file im array")

    Next

    EndIf

    ;Close the handle returned by FileOpen.

    FileClose($hFileOpen)

    ----

    Dateien

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Albert Einstein)

    Einmal editiert, zuletzt von Peter S. Taler (20. November 2017 um 11:21)

  • Für beigefügtes test.17 File stellt scih die Situation wie folgt dar

    Hallo Peter !

    Habe ich was an den Augen, oder fehlt die beigefügte Datei test.17 ?

    Gruß Musashi

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Hallo Musashi,

    Nein Da hast Du recht. Liegt daran, dass man scheinbar keine *.17 Dateien hochladen kann, da es eine unbekannte Dateiendung ist (Bug oder Feature?). Habe in *.txt umbenannt und Script entsprechend geändert.

    Danke

    Peter

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Albert Einstein)

  • Bitte beim nächsten Mal deinen Code in die entsprechenden Tags packen oder im Editor "Code"-anklicken, einfügen und als Highlighter AutoIt nehmen.

    Guck doch mal in die _HexToString-Funktion rein, die arbeitet mit UTF-8 und deine Datei scheint ANSI-formatiert zu sein. Ein kleiner Test zeigt das ganze auch: