String als binäre Datei speichern

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Piwo
Beiträge: 27
Registriert: 05.08.2012 22:40

String als binäre Datei speichern

Beitrag von Piwo »

Hi leute,

in einem vorherigen Thread hat man mir sehr gut bei einem kleinen programm geholfen, nämlich Dateien jeder art einzulesen und sie hexadezimal in einem langem string abzuspeichern.
Meine frage jetzt ist jedoch wie ich diesen String voller hexadezimaler zeichen wieder als die Datei abspeichern kann die sie vorher war, ohne die funktionstüchtigkeit zu beeinträchtigen (unabhängig ob die datei vorher eine .exe, .txt. .doc oder sonst ganz gleich was war).
Geht es am einfachsten wenn ich es via createfile() eine neue datei erstelle und mittels z.B. writebyte() die umgereichneten hex-werte nacheinander reinschreibe oder muss ich hier komplexere methoden nutzen?

Danke im vorraus :)
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8838
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: String als binäre Datei speichern

Beitrag von NicTheQuick »

Genau so kannst du es machen. Damit es aber schnell wird, muss man womöglich einiges mehr tun.

Hier das Beispiel für die einfache Art:

Code: Alles auswählen

Define.s hexString = "ab4F126700C4"

If CreateFile(0, "/home/nicolas/tmp/testfile")

	Define.i hexLength.i = Len(hexString)
	Define.i i
	For i = 1 To hexLength Step 2
		Define.s hexByte = Mid(hexString, i, 2)
		Define.b byte = Val("$" + hexByte)
		WriteByte(0, byte)
	Next
	CloseFile(0)
EndIf
Antworten