[erledigt] ^String in Datei speichern - Umlaute weg
-
Ich will einige .Net-Strings in eine Textdatei speichern, was im Grunde auch funktioniert, nur leider werden die Umlaute nicht richtig übernommen:
"...für..." statt "...für..."
try { StreamWriter ^datei = gcnew StreamWriter("FehlerListe.xls"); DataRow ^Zeile; DataTable ^FehlerTabelle = dataSet2->Tables["Fehler"]; for (int Index=0; Index< dataSet2->Tables["Fehler"]->Rows->Count; Index++) { Zeile = FehlerTabelle->Rows[Index]; if (Convert::ToString(Zeile["isModified"]) != Convert::ToString("Datensatz geaendert")) { datei->WriteLine(Zeile["Tabelle"] + "\t" + Zeile["Symbol"] + "\t" + Zeile["Deutsch"]; } } datei->Close(); } catch (Exception ^e) { MessageBox::Show(e->Message, "Fehler beim erzeugen der Fehlerdatei"); }
Ich habe im Netz einiges für C# gefunden, die Ansätze haben mir bei Visual Studio Express und C++ aber leider nicht geholfen.
Über einen hilfreichen Tipp wäre ich sehr froh. Danke im Voraus.
-
Korhil schrieb:
"...für..." statt "...für..."
Er wird das im UTF8 speichern. Und Du betrachtest das mit einem Editor der kein Unicode kann bzw nicht erkennt dass es welcher ist.
-
Verwende:
int iCodePage = 1252; //westeuropäische Codepage StreamWriter ^streamWriter = gcnew StreamWriter("FehlerListe.xls", Encoding::GetEncoding(iCodePage));
-
witte schrieb:
Korhil schrieb:
"...für..." statt "...für..."
Er wird das im UTF8 speichern. Und Du betrachtest das mit einem Editor der kein Unicode kann bzw nicht erkennt dass es welcher ist.
Ich betrachte die Datei mit Excel, das dürfte das dooch schaffen, oder nicht ?
edit: Ich nehme alles zurück - mit dem Editor wird es richtig angezeigt und in Excel nichtGibt es da einen "Trick", damit Excel das richtig erkennt ?
taraneas schrieb:
Verwende:
int iCodePage = 1252; //westeuropäische Codepage StreamWriter ^streamWriter = gcnew StreamWriter("FehlerListe.xls", Encoding::GetEncoding(iCodePage));
Funktioniert leider auch nicht. Es kommt die Fehlermeldung:
...\Form1.h(1056) : error C2664: 'System::IO::StreamWriter::StreamWriter(System::IO::Stream ^,System::Text::Encoding ^)': Konvertierung des Parameters 1 von 'const char [16]' in 'System::IO::Stream ^' nicht möglich
-
Jetz hast Du die Fehlermeldung des Kompilers. Der musst Du jetz nachgehen.
Hier findest Du die Konstruktoren des StreamWriter's:
http://msdn.microsoft.com/en-us/library/system.io.streamwriter.streamwriter.aspx
Offensichtlich passt dein Aufruf nicht zu den angebotenen Signaturen.Irgendwie muss Du selbst denken... sonst wirds nie was.
Simon
-
simon.gysi schrieb:
Jetz hast Du die Fehlermeldung des Kompilers. Der musst Du jetz nachgehen.
Hier findest Du die Konstruktoren des StreamWriter's:
http://msdn.microsoft.com/en-us/library/system.io.streamwriter.streamwriter.aspx
Offensichtlich passt dein Aufruf nicht zu den angebotenen Signaturen.Irgendwie muss Du selbst denken... sonst wirds nie was.
SimonDanke, der Anstoß hat geholfen. Hatte den Wald vor lauter Bäumen nicht mehr gesehen:
StreamWriter ^datei = gcnew StreamWriter("FehlerListe.xls", false, System::Text::Encoding::Default); ...