ANSI/UNI Code in Datei
-
Hallo ihr,
Im UNI Format kann man folgendermassen mit C++ in Textdateien schreiben:
FileStream^ sw = gcnew FileStream(filename, FileMode::OpenOrCreate,FileAccess::ReadWrite,FileShare::ReadWrite); System::Text::UnicodeEncoding^ code = gcnew System::Text::UnicodeEncoding; int byte = code->GetByteCount("SOLL IN DATEI STEHEN"); sw->Write(code->GetBytes(txtdbname->Text->ToString()+"\n"),0,byte);
Wenn ich einen Zeilenumbruch mit '\n' mache geht das logischerweise nicht, da der UNICode das nicht als Zeilenumbruch versteht.
Somit muss ich irgendwie ASCII Code in eine Datei schreiben.Eigentlich muesste ASCII so gehen:
StreamWriter sw = File::CreateText("test.txt")); sw.WriteLine("DAS SOLL IN DATEI STEHEN"); sw.WriteLine("Das soll eine Zeile unter dieser Zeile auch noch stehn");
In C# hat die Verwendung dieser Objekte einwandfrei funktioniert.
Hier in C++ steht danach NICHTS in der Datei.Soll ich ne ganz andere Methode verwenden oder ist in meiner momenanen nur ein Fehler?
Ich bedanke mich bei allen fuer ihre Hilfe
Tschuess
David
-
Statt einfach nur \n solltest du Environment.NewLine verwenden, das gibt dir den Zeilenumbruch für das aktuelle System zurück, weil \n alleine reícht Windows z.B. nicht für nen Zeilenumruch.
Letzterer Code sollte schon was scheiben, musst halt drauf achten den StreamWriter auch ordentlich zu schließen. Denke sowas fehlt bei dir.
-
Naja - den Stream zu schliessen war ne gute Idee, denn jetzt wird echt was geschrieben:
System::IO::StreamWriter^ sw = File::CreateText("test.txt"); sw->WriteLine("DAS SOLL IN DATEI STEHEN"); sw->WriteLine("Das soll eine Zeile unter dieser Zeile auch noch stehn"); sw->Close();
Vielen Dank!
Dann hat sich mein Problem wohl schon von allein geloest.
Hatte echt gedacht diese andere komische komplizierte Methode nehmen zu muessen...cya
David