Datei als Hex auslesen und wieder schreiben
-
Hi,
ich steh grad auf dem schlauch wie ich ne Datei im Hex Format auslese bzw als Hex darstellen kann.Mein erster Gedanke war die datei als int auszulesen und dann mit CString:Format("%x",...) in Hex umzuwandeln. Klappt auch soweit so wie es aussieht hab ich in meinem Integer Array jeweils 4 Byte, also 4 Zeichen pro array item
// in eine Textdatei hab ich HHHH geschrieben // in hex also 48484848 CFile file; file.Open("Test.txt", CFile::modeRead); int fSize = file.GetLength(); int* content= new int[fSize]; file.ReadHuge(content,fSize); CString temp; temp.Format("%x",content[0]); //bis hier hab ich die korrekten HExwerte in dem CString stehen temp = "0x"+temp; //nur ein versuch ^^ int hex = atoi(temp); // ergibt 0
Das zurückkonvertieren von Hex in int um es wieder in die Datei zu schreiben klappt allerdings nicht, was ihr da seht war ein nicht ganz ernst gemeinter versuch, aber die hoffnung stirbt zuletzt
Wie konvertiere ich jetzt den Hexwert aus dem String oder einem Integer in einen normalen dezimalen Wert?
-
Man kann bei strtoul die Basis mit angeben, sollte also funtionieren.
-
habs jetzt so gelöst:
sscanf(temp,"%x",&hex);das mit dem doppelten pointer bei strtoul ist mir noch etwas suspekt aber ich schaus mir nochmal an