ANSI C: Datei byteweise auslesen?

Tensi

Mitglied
Hallo!

Ich bin absoluter C Anfänger und möchte eine Textdatei
byteweise also Zeichenweise auslesen und den Inhalt
in eine weitere Datei kopieren, ohne das Steuer/Sonderzeichen
verloren gehen. Dabei möchte ich die Position im Text angeben können, welches Zeichen gelesen werden soll. Ich habe das schon mit fseek ausprobiert, bin aber nicht weitergekommen.
Ich bitte um Hilfe!!!

Vielen Dank schon jetzt für eure Antworten ...
 
Also grundsätzlich gehst du da so vor:
  • Datei zum Lesen öffnen mit fopen()
  • konnte die Datei geöffnet werden?
  • mit fseek() an die Stelle springen ab der du lesen willst, wenn du nicht von Anfang an lesen willst
  • die zeichen einlesen, entweder mit fgetc() zeichenweise, oder mit fgets() mehrere zeichen
  • Datei schließen mit fclose()
  • 2.Datei zu schreiben öffnen
  • konnte die Datei geöffnet werden?
  • mit fputc() ein Zeichen oder mit fputs() mehrer Zeichen rein schreiben
  • Datei schließen mit fclose()

Gruss Homer
 
Du musst aber folgendes beachten:
fgetc gibt einen int Wert zurück!
Hier ist der Code:


...
char byte = char(fgetc(file));
...
 
fseek ???

Hallo!

Zuerst möchte ich mich für eure Mühen bedanken!!!
Hat mir viel geholfen ...

Aber ich stolpere immer wieder über fseek!
Ich werde auch aus der MSDN Beschreibung und
verschiedenen Büchern nicht schlau.
Kann mir jemand die Syntax schreiben, wenn ich
z. B. das 17. Byte von "datei" (Pointer "datei" auf File)
in die Variable C (char) speichern möchte???
(Ohne fopen und das ganze drumrum ...)

Vielen, vielen Dank schon jetzt für Eure Hilfe!!!!
 
Hallo!

fseek(datei, 16, SEEK_SET);

C = char(fgetc(datei));

SEEK_SET bedeutet, das du vom Dateianfang aus 16 Bytes weiterspringst.

Statt y=char(x) kannst du auch y = (char) x schreiben(Gefällt mir besser).

Gruß Frank
 
Die Schreibweise
y = (char) x ist die von C und

y = char (x), die von C++ !!

Wenn du also reines C programmieren musst, musst du die obere Schreibweise nehmen ansonsten störts nich allzu sehr :).
 
Zurück