moin moin,
ich habe jetzt meinen ersten Quelltext in AutoIt geschrieben.
Es geht darum, daß ich aufgezeichnete Daten (alles im Hex-Format) meiner Photovoltaikanlage so umwandeln möchte, damit sie direkt in eine Excel-Tabelle eingefügt werden können. Für einen einzelnen Tag klappt auch alles. Jeder neue Tag beginnt mit einem "FF FF", dann folgen Datum, Uhrzeit und danach werden die Umdrehungen eines Zwischenzählers aufgezeichnet. Das Problem ist jetzt, die einzelnen Tage einer größeren Datensammlung voneinander zu trennen.
Hier einmal die Quelldaten für einen Tag:
Spoiler anzeigen
[Blockierte Grafik: http://dl.dropbox.com/u/4511977/AutoIt_001.png]
Falls es jemand nachvollziehen möchte, stelle ich hier auch noch die Quelldaten hierfür zur Verfügung:
mit dem folgenden Quellcode möchte ich testen, ob diese beiden Bytes "FF FF" vorhanden sind:
Spoiler anzeigen
$datei = FileOpen("d:\autoit\test.bin", 0)
$datei1 = FileOpen("d:\autoit\test-test", 1)
$zaehler = 0
Dim $a[500]
If $datei = -1 Then
MsgBox(0, "Error", "Konnte Datei nicht öffnen.")
Exit
EndIf
While 1
$buchstabe = FileRead($datei, 1)
If @error = -1 Then ExitLoop
$zaehler = $zaehler + 1
$a[$zaehler] = $buchstabe
Wend
For $i = 1 To $zaehler
If $a[$i] = Chr(0xff) Then $a[$i] = Chr(0)
FileWrite($datei1, $a[$i])
Next
FileClose($datei)
FileClose($datei1)
Ich ersetze zum Testen also "FF" in "00"
das folgende Bild ist das Ergebnis, leider nicht wie erwartet:
Spoiler anzeigen
[Blockierte Grafik: http://dl.dropbox.com/u/4511977/AutoIt_002.png]
Und jetzt meine Frage:
Habe ich im Quelltext irgendetwas nicht beachtet, wodurch dieses zusätzliche Byte "9F" fälschlicherweise als "FF" interpretiert wird?
Ich hoffe, daß jemand eine Erklärung hierfür hat.
Falls ich nicht alle erforderlichen Angaben gemacht habe, die zur Eingrenzung des Problems erforderlich sind, bitte ich dieses schon jetzt zu entschuldigen. Ich werde es auf Anfrage dann selbstverständlich nachholen.
mfg
Seestern