Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Borland C++ Builder » Fehler bei fread()

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
14.07.2003, 13:33 Uhr
~Raziel
Gast


Hallo Zusammen

Kurz zur Erklärung:
Ich erstellen eine Textdatei und fülle diese ganz normal mit fprintf(). Das Ziel ist nun, über diese Datei eine Prüfsumme zu berechnen. Die Funktion, welche ich zur Berechnung der Prüfsumme benutze, berechnet diese allerdings nur über Daten welche im Hauptspeicher sind. Um diese Funktion also anwenden zu können muss ich die Datei in den Speicher auslesen.
Hiezu bestimme ich die Dateigrösse mittels ftell() und reserviere mir mit malloc() den benötigten Speicher. Danach setze ich den Dateizeiger mit fseek() auf den Anfang und möchte mit fread() die Datei auslesen.
Hier der Code (habe das öffnen und schliesen der Datei weggelassen):

FILE *stream;
int ia, ib;
int iDateigroesse = 0;
char *ptr;

fflush(stream); //Puffer leeren
iDateigroesse = ftell(stream); //Dateigrösse ermitteln
ptr = (char*) malloc(iDateigroesse); //Speicher reservieren
a = fseek(stream, 0, SEEK_SET); //Zeiger an Dateianfang stellen
b = fread(ptr, iDateigroesse, 1, stream); //Datei auslesen


Das alles funktioniert solange, bis ich meine Daten in der Textdatei mit einem Zeilenumbruch ( \n ) trenne. Dann bekomme ich als Rüchgabewert von fread() immer 0.
Kann mir jemand sagen wieso das so ist und wie ich es anders machen kann?
Man muss doch eine Datei auslesen können, welche Zeilenumbrüchen enthält.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
14.07.2003, 14:52 Uhr
~Raziel
Gast


Erstmal sorry dafür das ich ins falsche Forum geschrieben habe.

Habe die Lösung gefunden. Der Fehler war der, das die Dateigrösse falsch (zu gross) ermittelt wurde, weil die Datei im Textmodus und nicht im Binärmodus geöffnet wurde.

MfG Raziel
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Borland C++ Builder ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: