Seite 1 von 1
JPG in Hex wandeln
Verfasst: 14.04.2005 23:25
von persepole
Hallöchen,
bin seit heute purebasic neuling und habe gleich mal ne frage.
Ich möchte ein JPG im Hex-code in ein RTF-file schreiben.
Dazu sollte das JPG von bin nach hex convertiert werden.
Bisher habe ich versucht einen Wert (bin) in Hex zu wandeln.
Das funzt auch sehr gut, doch nur bis 4byte. Habe keine ahnung wie man
an die restlichen bytes ran kommt. Hat jemand ne Idee oder zumindest einen
ansatz.
MFG
persepole
Verfasst: 15.04.2005 08:13
von walker
Hi,
versuche es mal ReadLong() und FileSeek() (Beschreibung siehe PB-Hilfe)
cu
Ulf
Verfasst: 15.04.2005 11:50
von bobobo
Code: Alles auswählen
ReadFile(0,"d:\bild.jpg")
CreateFile(1,"D:\bild_hex.txt")
UseFile(0)
While Eof(0)=0
UseFile(0)
tmphex$=Right("0"+Hex(ReadByte()&$FF),2)
UseFile(1)
WriteString(tmphex$)
Wend
CloseFile(0)
CloseFile(1)
Verfasst: 15.04.2005 12:14
von walker
Hi,
deshalb meinte ich ja auch zusätzlich
FileSeek():
Code: Alles auswählen
ReadFile(0,"c:\Drehen von DSC07835.JPG")
CreateFile(1,"c:\bild_hex.txt")
UseFile(0)
While Eof(0)=0
UseFile(0)
tmphex$=Right("0"+Hex(ReadByte()&$FF),2)
FileSeek(Loc()+1) ;<<<---- Pointer weitersetzen
UseFile(1)
WriteString(tmphex$)
Wend
CloseFile(0)
CloseFile(1)
cu
Ulf
Verfasst: 15.04.2005 12:23
von freedimension
Also soweit ich weiß setzen die ganzen ReadXXX-Befehle den File-Pointer automatisch weiter.
Verfasst: 15.04.2005 12:38
von bobobo
Fileseek ist über, der Zeiger rutscht "automatisch" weiter
Wichtiger ist
endergebnis$= Right("0"+Hex(ReadByte()&$FF),2)
sprich
-Lese ein byte
-verknurpel (AND) das mit $FF (256) damit das ein positiver Wert wird
-wandel den Kram in Hex um
-pack ne 0 davor weil der Hex Befehl auch einstellige Sachen ausgibt
-nimm als Ergebnis von rechts 2 Stellen als Endergebnis
Wobei die VerknurpelAktion eigentlich nur kosmetische Gründe hat, da der Hex-Befehl auch ohne das funktioniert wie ff zeigt
Code: Alles auswählen
ReadFile(0,"d:\bild.jpg")
CreateFile(1,"D:\bild_hex.txt")
UseFile(0)
While Eof(0)=0
UseFile(0)
count+1
tmphex$=Right("0"+Hex(ReadByte()),2)
Debug tmphex$+" "+Str(count)
FileSeek(count-1) ; hier ist es nun wirklich nötig
tmphex$=Right("0"+Hex(ReadByte()&$FF),2)
Debug tmphex$+" "+Str(count)
UseFile(1)
WriteString(tmphex$)
Wend
CloseFile(0)
CloseFile(1)
Verfasst: 15.04.2005 22:13
von persepole
Hallo zusammen,
vielen vielen Dank für die schnelle und kompetente Hilfe!
Nun funktioniert es sehr gut. Die Beispiele sind für mich als anfänger sehr aufschlussreich. Klasse Forum.

Verfasst: 17.04.2005 06:08
von persepole
Hallo @alle,
jetzt hätte ich dazu doch noch eine letzte Frage,
wie ich die Hex-daten an das Dateiende schreibe.
Habe bis jetzt mit fileseek versucht auf das Dateiende zu zeigen
aber irgendwie funktioniert das nicht. Habe die Hilfe schon durchstöbert
mit meinem Anfängerwissen konnte ich nichts brauchbares finden.
Ein lösungsansatz wäre toll.
Vorab schon mal Dankeschön.
MFG
persepole