Variable in Datei speichern
-
Guten Tag,
Ich scheitere gerade an dem Versuch, eine Variableint adleranz;
in eine Datei zu schreiben. Die Datei wird mittels eines FileSaveDialog erstellt.
Ich versuchte nun folgendes:fs->WriteByte(adleranz);
Bim Debuggen keine Fehler, auch beim erstellen der Datei nicht. Doch wenn ich die DAtei öffne, steht dort, wo eigentlich die Variable(sie war zum Zeitpunkt des speicherns = 0), und somit eine "0" hätte stehen müssen, ein Leerzeichen.
Weiß jemand von Euch weiter?mfg
Mr X
-
Schau Dir das ganze mal mit einem Hexeditor an und stell sicher, das da wirklich ein Leerzeichen steht, nicht einfach NULL
-
Fragen wir mal so: Was erwartest Du denn, was in der Datei drinstehen soll? Text!?
-
Dort sollte eine Null stehen.
Eigentlich wollte ich es mit WriteLine machen, doch das gibt es nicht. Dann versuchte ich Write, doch das will nicht nur 1 sondern 3 Argumente. Der Versuch mit WriteByte war der einzige, der nicht schon beim debuggen scheiterte. Mein Wunsch war irgendwie blöd formuliert...
Ich frag die Frage noch einmal verständlicher:
Weiß jemand einen Befehl wie WriteLine, den es auch in C++/CLI gibt? Er sollte das selbe tun...mfg
Mr X
-
System::IO::StreamWriter ^writer = gcnew System::IO::StreamWriter("path"); writer->WriteLine("LALAL"); writer->Close();
müsste so eigentlich gehen...
-
Das Problem wäre hier wohl:
Der Dateiname wurde vom Benutzer angegeben, d.h. ich weiß ihn nicht...
Oder funktioniert das trotzdem?
Der StreamWriter kann sonst ja gar nicht wissen, welche Datei er beschreiben soll...
-
Das sagst Du dem Streamwrite ja auch mit dem Parameter beim erstellen ^^
SaveFileDialog gibt Dir mit der Eigenschaft FileName den ausgewählten Dateinamen zurück.
Dein Anfängliches Problem ist aber noch nicht klar.
-
Ich versuch es nochmal, das Problem zu präzisieren...
Also:
Ich möchte gerne den Inhalt/Wert der Variable adleranz vom Typ Integer in eine Datei schreiben, wenn man beim SaveFileDialog auf OK klickt. ich habe also im entsprechenden Event folgende Zeilen:private: System::Void saveFileDialog1_FileOk(System::Object^ sender, System::ComponentModel::CancelEventArgs^ e) { if(saveFileDialog1->FileName != "") { System::IO::FileStream ^ fs = safe_cast<System::IO::FileStream^>(saveFileDialog1->OpenFile()); fs->Close(); }
So, die Datei wird erstellt, dann wird ein Filestream geöffnet und wieder geschlossen.
Zwischem dem öffnen und schließen kann man meines Wissens etwas in die Datei schreiben. Dies soll die Variable adleranz sein.Ich hoffe, das anfängliche Problem ist nun klar...
Ich kann das, was Ihr mir hoffentlich antwortet, aber erst am Dienstag lesen, bin nicht zuhause...mfg
Mr X
-
Wie schon gesagt wurde: Nimm StreamWriter!!!!!!!!!!!!!!!!! (das reicht jetzt)
-
Gut das hab ich gemacht und es funktioniert...
Danke für die HilfeIch weiß, meine fragen wrden nervig, weil ich mich so auf den FileStream festgesetzt habe...