Readall/Writeall: Encoding-Problem

09/04/2009 - 21:41 von Wolfgang Badura | Report spam
Hallo liebe NG-Teilnehmer!
Wenn ein String einen Umlaut oder scharfes "ß" enthàlt und ich diesen mit
WriteAll auf einen Textfile schreibe, so steht an deren Stelle ein "?".
Genauso sieht es auch beim Lesen aus und so steht es auch in der Hilfe.
Wie kann ich in einem Rutsch einen ganzen File, egal welchen Inhalts, lesen,
sodaß ich anschließend zB eine Replace-Operation auf den gesamten String
ausführen kann?
Mit ReadAllBytes eines Binàrfiles erhalte ich eine Byte-Tabelle. Das
Umschreiben in einen String mit einer For/next-Schleife ist von der
Ausführungszeit her unrealistisch.
Wenn ich zB ein Word-Dokument in einen String lesen möchte, so gibt es zB.
das Problem, daß mittels InputString und Charcount mit der Filelànge belegt,
ein Fehler auftritt: Es würde nach EOF gelesen.
Welche Möglichkeit bleibt mir?
Mit bestem Dank im Voraus für eine Unterstützung.
Wolfgang Badura
 

Lesen sie die antworten

#1 Wolfgang Badura
10/04/2009 - 10:27 | Warnen spam
Hallo Armin!
"Armin Zingler" wrote in message
news:
Ich finde nur ein WriteAll, und das ist
System.Web.Services.Discovery.DiscoveryClientProtocol.WriteAll.


Das ging mir auch so.

auf einen Textfile schreibe, so steht an deren Stelle
ein "?".



Welche Codierung verwendest du fürs Schreiben?



ASCII.
Das habe ich beim ersten Test einfach so versucht und bin dann sofort auf
dieses Problem gestoßen.
Aber auch beim Lesen einer Datei mit "ß" im Text steht an eben dieser Stelle
das "?"


Genauso sieht es auch beim Lesen aus und so steht es auch in
der Hilfe.



Was genau steht in der Hilfe?



ASCII-Encoding unterstützt nur die Unicode-Zeichenwerte zwischen U+0000 und
U+007F.
Das "ß" hat den Code 225


Mit System.IO.File.ReadAllText unter Angabe der richtigen Codierung.



Kannst Du mir ein Beispiel nennen, wie ich die richtige Codierung angebe?

Ein Byte-Array wàre zunàchst schon das richtige.



Aber wie kann ich dann mit Replace weiterverfahren?
Eine Übertragung in einen String ist einfach zu zeitaufwendig.

Wielleicht kannst Du meine Frage nach dem "wie Codieren" noch beantworten.

Vielen Dank,
Wolfgang

Ähnliche fragen