fehler beim auslesen aus textdatei
-
hallo
ich habe ein problem:
ich überprüfe, ob eine textdatei vorhanden ist. wenn nicht, wird sie erstellt und schliesslich gleich den inhalt der textdatei ausgelesen.
eigentlich sollte der inhalt ja gleich null sein, wenn die datei neu erstellt wird.
leider erhalte ich nachdem ich die datei neu erstellt habe und auslese, ein zeichen zurück, nähmlich dieses: ◘ (einfach so ein kleines quadrat)wie könnte ich das verhindern?vielleicht müsste ich in der if bedingung if(datumaustextdatei == "") noch einen weitere bedinung hinzufügen, habe irengwie an die Länge von 'datumaustextdatei' gedacht!?denn 'datumaustextdatei' ist immer länger als 2 zeichen. so könnte ich diesen fall verhindern, dass dieses ◘-zeichen hineinkommt!
ItemsCombo1 = ComboBox1->Text; dateiname = ItemsCombo1 + ".txt"; ifstream myfile(dateiname.c_str()); if(!myfile) { fopen(dateiname.c_str(),"w"); ShowMessage("Datei wurde erstellt"); } fopen(dateiname.c_str(),"r"); char zeilen[100]; myfile.getline(zeilen,100); datumaustextdatei = zeilen; if(datumaustextdatei == "") { ShowMessage("Kein Datum gefunden"); } else { Edit1->Text = datumaustextdatei; }hat jemand eine idee??

vielen dankcu
-
Hallo
was mir sofort aufgefallen ist
2 X fopen nacheinander
(mach nach dem Erstellen der Datei (fopen) noch ein fclose)MfG
Klaus
-
das mit dem fclose habe ich probiert, leider weiss ich nicht was in die klammer kommt? fclose(...)?
in der hilfe steht was von FILE, aber wenn ich fclose(dateiname) mache, gibt es einen fehler.das mit dem fopen(), einmal öffne ich es mit den berechtigungen "w" und einmal mit "r"!
darf man das nicht?

vielen dank
trade
-
Hallo
schau dir fopen in der Hilfe mal ganz genau an (Rueckgabewert)
Aber warum verwendest du fopen, wenn du auf der anderen Seite Streams verwendest
(besser nur Streams verwenden)MfG
Klaus
-
hy klaus
ich verwende fopen weil es mir somit gleich die datei erstellt, wenn sie noch nicht vorhanden ist!
oder kann ich dies auch mit streams machen??das mit dem fclose() sollte klar sein!!vielen dank!!

trade
-
Hallo
verwende doch
ofstream
MfG
Klaus
-
Bist du dir im klaren darüber, das du deine Datei bereits mit
ifstream myfile(dateiname.c_str());öffnest?
Versuchs mal so:
ifstream myfile(dateiname.c_str()); if(!myfile) { ShowMessage("Datei nicht geöffnet!"); return; } getline(myfile, line); if(line == "") { ShowMessage("Kein Datum!"); } else { Edit1->Text = line; }Edit: Zum einlesen geht entweder nut ifstream, oder fstream mit ios::in

Auslesen mit ofstream oder fstream ios::out oder ios::app
-
hy klaus
du hattes recht, ich habe nun alles mit streams gemacht, nun läuft es!!
vielen dank!trade.