Datei einlesen

2fast4you87

Erfahrenes Mitglied
Hallo,

ich will einen Hex Editor schreiben, nur mein problem ist das ich nicht jede datei öffnen kann. z.B eine rar datei er hört nach rar! auf die datei zu lesen.

Ich war schon in vielen Forums, nur bis jetzt habe ich nirgends eine Lösung gefunden eine datei einzulesen um dann sie in Hex auszugeben, zB in eine andere textdatei.

Könnt Ihr mir helfen?
 
Hi.

Hast du die Datei denn auch im Binär-Modus geöffnet?

Programmierst du in C oder C++?

Zeig doch mal deinen Code wie du die Zeichen einliest.
 
Hm ich habe das Programm nur normal geändert, sprich im textmodus eingelesen.
Danke wegen dem Typ zum Binär einlesen :)
fals ich es nicht hinbekomm schreibe ich euch eben den Code.
 
Binärdateien können Daten enthalten, die bei Öfnnen als Textdatei als Steuerzeichen interpretiert werden (Zeilenumbrüche etc.)
Wenn Du eine Datei im Binärmodus öffnest, wird nichts interpretiert.
Du kannst dann die Daten byteweise betrachten. Hier ist dann auch möglich, ein Byte zu erhalten, welches den Wert 0, als Byte, enthält. Für Textdateien wäre dies der Hinweis: Datei zu ende.

vop
 
Korrekt. Du kannst beliebige Dateien einlesen.

Wenn Du dann Byte für Byte in eine Hexkodierung umwandelst, kannst Du die datei als HEX-Datei anzeigen.

vop
 
vop hat gesagt.:
Wenn Du eine Datei im Binärmodus öffnest, wird nichts interpretiert.
Du kannst dann die Daten byteweise betrachten. Hier ist dann auch möglich, ein Byte zu erhalten, welches den Wert 0, als Byte, enthält. Für Textdateien wäre dies der Hinweis: Datei zu ende.
Stimmt nicht ganz. Wenn die Datei im Textmodus geöffnet wird, werden auch Nullbytes eingelesen. Allerdings wird das Ende der Datei an der Stelle des ersten Auftretens von ^Z (end of file, 0x1A) angenommen.
 
Code:
#include <iostream.h>
#include <stdio.h>
#include <io.h>
#include <string.h>

void main()
{
FILE *oFile;
char *buffer;
unsigned long lFileLen = 0;

oFile = fopen("test.jpg", "r+b");
lFileLen = filelength(oFile->_file);
buffer = new char[lFileLen];
fread(buffer, 1, lFileLen, oFile);

   
	FILE *stream;
	stream = fopen("datei.txt", "a+");
	    fwrite(buffer, strlen(buffer), 1, stream);
		fclose(stream);
fclose(oFile);
}

Hm also er liest nicht alles ein und die ausgabe is auch komisch...
hat jmd ne idee ?

/edit habe mir das Programm nochmal angesehn, es funktioniert ja eigentlich,
nur eine sache natürlich nicht er bricht enfach zu früh ab.
Wäre üner Hilfe sehr dankbar. :confused: :confused: :confused:
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück