Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Problem beim Schreiben von Umlauten in eine Textdatei

244 views
Skip to first unread message

Steffen Tellhelm

unread,
Jun 13, 2003, 10:07:17 AM6/13/03
to
Hi

folgendes Problem: ich muss verschiedene Strings in eine ganz normale
plain Textdatei schreiben. Aber irgendwie schreibt er mir staendig
anstelle von Umlauten Fragenzeichen, nichtlesbare Sonderzeichen bzw. gar
nichts in die Datei, je nachdem welchen Encodingtyp ich verwende. Hier
mal ein kurzer Codeausschnitt:

logStream = new FileStream(
strFilename,
FileMode.OpenOrCreate,
FileAccess.ReadWrite,
FileShare.Read);

logStream.Seek(0, SeekOrigin.End);
logWriter = new StreamWriter(logStream);
// oder logWriter = new StreamWriter(logStream, Encoding.ASCII);
// oder logWriter =
// new StreamWriter(logStream, Encoding.GetEncoding(1252));

logWriter.WriteLine("irgendwas mit ÖÖÖ ÄÄÄ ÜÜÜ");

Ich muss den Weg ueber eine FileStream gehen, da ich gleichzeitig auch
noch einen StreamReader fuer diesen Stream benoetige.

Wie kann man das nun machen, das Umlaute in der Textdatei ganz normal
lesbar erscheinen?

Mfg. Steffen.

Peter Suter

unread,
Jun 13, 2003, 11:08:36 AM6/13/03
to Steffen Tellhelm
Hi Steffen
Bei mir funktioniert's so (mit Encoding.Default) in VB.NET:
'
Dim Fs As FileStream = New FileStream("C:\FileReaderTest.txt",
FileMode.OpenOrCreate, FileAccess.Write, FileShare.None)
Dim writer As StreamWriter = New StreamWriter(Fs,
System.Text.Encoding.Default)
'
writer.WriteLine("File created using StreamWriter class.
[äàöéüèÄÖÜÈÀÉ$£¨!@##]")
writer.Close()
'
Hilft's?

--
Regards

Peter Suter
Ing.
CH 3255 Rapperswil BE
'

On Fri, 13 Jun 2003 16:07:17 +0200, Steffen Tellhelm <SgtT...@gmx.net>
wrote:

--
Regards

Peter Suter
Ing.
CH 3255 Rapperswil BE

Steffen Tellhem

unread,
Jun 13, 2003, 5:58:54 PM6/13/03
to
Peter Suter wrote:
> Hi Steffen
> Bei mir funktioniert's so (mit Encoding.Default) in VB.NET:
> '
> Dim Fs As FileStream = New FileStream("C:\FileReaderTest.txt",
> FileMode.OpenOrCreate, FileAccess.Write, FileShare.None)
> Dim writer As StreamWriter = New StreamWriter(Fs,
> System.Text.Encoding.Default)
> '
> writer.WriteLine("File created using StreamWriter class.
> [äàöéüèÄÖÜÈÀÉ$£¨!@##]")
> writer.Close()
> '
> Hilft's?
>

So wie du es geschrieben hast funktioniert es - mit einem Close direkt
nach dem Schreiben. Aber: wenn ich den writer nicht mit Close schliesse,
sondern einfach mit Flush auffordere die aktuellen Eintraege zu
schreiben, kommen wieder die Sonderzeichen in die Datei. In der Doku
steht allerdings das zumindest mit AutoFlush es auch ohne Close richtig
Encoded geschrieben werden sollte. Aber leider funktioniert das auch nicht.

Thx. Steffen.

Peter Suter

unread,
Jun 14, 2003, 5:30:16 AM6/14/03
to
Hi Steffen

Bei mir funktioniert's so (mit Encoding.Default) (in VB.NET):
'
Dim Fs As FileStream = New FileStream("C:\FileRead_WriterTest.txt",

FileMode.OpenOrCreate, FileAccess.Write, FileShare.None)
Dim writer As StreamWriter = New StreamWriter(Fs,
System.Text.Encoding.Default)
'

writer.WriteLine("File mit StreamWriter class geschrieben: ...
{[äàöéüèÄÖÜÈÀÉ$£¨!@#]}")
writer.WriteLine("Zweite Zeile: {[äàöéüèÄÖÜÈÀÉ$£¨!@#]}")
writer.WriteLine("Dritte Zeile: {[äàöéüèÄÖÜÈÀÉ$£¨!@#]}")
writer.Flush()
writer.Close()
'


--
Regards

Peter Suter
Ing.
CH 3255 Rapperswil BE

On Fri, 13 Jun 2003 23:58:54 +0200, Steffen Tellhem <SgtT...@gmx.net>
wrote:

--

Steffen Tellhem

unread,
Jun 14, 2003, 6:37:20 PM6/14/03
to
Peter Suter wrote:
> Hi Steffen
>
> Bei mir funktioniert's so (mit Encoding.Default) (in VB.NET):
> '
> Dim Fs As FileStream = New FileStream("C:\FileRead_WriterTest.txt",
> FileMode.OpenOrCreate, FileAccess.Write, FileShare.None)
> Dim writer As StreamWriter = New StreamWriter(Fs,
> System.Text.Encoding.Default)
> '
> writer.WriteLine("File mit StreamWriter class geschrieben: ...
> {[äàöéüèÄÖÜÈÀÉ$£¨!@#]}")
> writer.WriteLine("Zweite Zeile: {[äàöéüèÄÖÜÈÀÉ$£¨!@#]}")
> writer.WriteLine("Dritte Zeile: {[äàöéüèÄÖÜÈÀÉ$£¨!@#]}")
> writer.Flush()
> writer.Close()
> '

Danke nochmal fuer die Hilfe. Jetzt funktioniert es; ich hatte noch
einen StreamReader im Code dessen Encoding auf Encoding.Default gesetzt
werden musste ;o).

Mfg. Steffen.

0 new messages