Seite 1 von 1

Wie kann man bitte eine HexText-Datei in Deci-Text-Datei umw

Verfasst: 07.04.2020 14:07
von funkheld
Hallo, guten tag.
Wie kann man bitte eine HexText-Datei in Deci-Text-Datei umwandeln?

Ich weiss nicht wie man das so sauber hin bekommt mit der ganzen Ordnung.

Die Dateien bestehen aus mehr oder weniger Zeilen.
Die letzte Zeile kann manchmal weniger als 8 Einträge haben.

Als erste Dataeintragung soll die gesamtanzahl erscheinen.
Ich möchte dann alla Daten mit der Read in Basic einlesen. Der erste Datawert steht dann in der For/Next zum zählen.
data 45
data.....
data...

Jede Zeile soll so aussehen :

data 123 , 234 , 123

und am Ende jeder Zeile soll das letzte Komma immer wegfallen.

----------------------------------------
$FF , $80 , $80 , $80 , $80 , $81 , $81 , $81 ,
$81 , $81 , $81 , $81 , $81 , $81 , $81 , $81 ,
$FF , $00 , $00 , $00 , $00 , $FF , $00 , $00 ,
-----------------------------------------

Danke.

Re: Wie kann man bitte eine HexText-Datei in Deci-Text-Datei

Verfasst: 07.04.2020 16:13
von tft
Hallo,

ich habe das nicht explizit getestet, aber ich denke VAL() und STR() könnte da gut weiterhelfen. VAL() wandelt String in Zahlen und STR() Zahlen in String.
Das sollte auch mit "%00111110" gehen. Die Deutsche Hilfe zu den String Sachen ist sehr hilfreich.

Code: Alles auswählen

Debug Str(Val("$F8"))
Gruss TFT

Re: Wie kann man bitte eine HexText-Datei in Deci-Text-Datei

Verfasst: 07.04.2020 17:37
von mk-soft
1. Du brauchst nicht nach Dezimal wandeln, PB kann das selber.
2. Anzahl Daten brauchst du nicht. Kann man berechnen

Code: Alles auswählen


a1.s = "$FF , $80 , $80 , $80 , $80 , $81 , $81 , $81 , "
a2.s = "$81 , $81 , $81 , $81 , $81 , $81 , $81 , $81 , "
a3.s = "$FF , $00 , $00 , $00 , $00 , $FF , $00 , $00 , "

Procedure.s TrimData(String.s)
  String = RTrim(String, " ")
  String = RTrim(String, ",")
  String = RTrim(String, " ")
  ProcedureReturn "  Data.a " + String
EndProcedure

Define r1.s
r1 = "DataSection" + #LF$
r1 + "  BeginData:" + #LF$
r1 + TrimData(a1) + #LF$
r1 + TrimData(a2) + #LF$
r1 + TrimData(a3) + #LF$
r1 + "  EndData:" + #LF$
r1 + "EndDataSection" + #LF$

Debug r1

; ----

Define cnt, i, value

Debug "Methode 1"
cnt = ?EndData - ?BeginData - 1

Restore BeginData 
For i = 0 To cnt
  Read.a value
  Debug "" + i + " = " + value
Next

Debug "Methode 2"

Structure ArrayOfUnsignedByte
  a.a[0]
EndStructure

cnt = ?EndData - ?BeginData - 1

Define *pdata.ArrayOfUnsignedByte = ?BeginData
For i = 0 To cnt
  Debug "" + i + " = " + *pdata\a[i]
Next

; Result - vom Debugger Kopiert und eingefügt
  
DataSection
  BeginData:
  Data.a $FF , $80 , $80 , $80 , $80 , $81 , $81 , $81
  Data.a $81 , $81 , $81 , $81 , $81 , $81 , $81 , $81
  Data.a $FF , $00 , $00 , $00 , $00 , $FF , $00 , $00
  EndData:
EndDataSection


Re: Wie kann man bitte eine HexText-Datei in Deci-Text-Datei

Verfasst: 08.04.2020 23:15
von funkheld
Hallo, danke für die Hilfe.

Das hat mir gut weiter geholfen.