Ü,Ä etc. bei streamfiles?



  • hi

    ich nutze die ofstream klasse um Datenwegzuschreiben, klappt wunderbar solange ich keine deutsche Sonderzeichen wie ä,ö, etc. versuche wegzuschreiben.

    Kann ich dem stream irgendwie beibringen, dass er das richtig macht. Derzeit öffne ich den stream mit std::ios::binary, kann das mein problem sein?

    Danke für Hilfe oder Rat

    Gruß



  • Kannst Du ein Ä auf den Bildschirm ausgeben?
    Ich vermute, daß es irgendwas mit AnsiToOem zu tun hat.



  • volkard schrieb:

    Kannst Du ein Ä auf den Bildschirm ausgeben?
    Ich vermute, daß es irgendwas mit AnsiToOem zu tun hat.

    ne, auf der kommandozeile geht das auch nicht.

    hatte aber gedacht, das dies eine reines Ausgabeproblem auf der kommandozeile ist. ich lese den text aus einer datei ein und schreibe diese dann in eine andere datei weg.

    im debug selbst sind die Zeichen noch intakt, nur wenn ich dann in die weggeschriebenen datei gucke, sind die zeichen vermurkst.



  • Das sind doch nur Bytes die du raus schreibst. Das man ein ä oder ü rausschreibt, ist ja nun wirklich Käse. 😉

    Im Ernst: du mußt doch wissen, in welcher Codepage du die Dateien verarbeitest? Und dementsprechend schreibst und liest du die Dateien. Alles andere ist undefiniert.
    Gib mal in diesem Unterforum in die Suchfunktion Codepage an, da bekommst du viele Topics über Streams und Filestreams.



  • Artchi schrieb:

    Das sind doch nur Bytes die du raus schreibst. Das man ein ä oder ü rausschreibt, ist ja nun wirklich Käse. 😉

    Im Ernst: du mußt doch wissen, in welcher Codepage du die Dateien verarbeitest?

    Hm...ne, nicht notwendigerweise.

    Ich lese eine Datei ein, die von einer IBM iSeries kommt, was die für einen Zeichensatz nutzt weis ich nicht.
    Allerdings dachte ich mir, ich Umschiffe das Problem. Ich hab versucht das Ü z.B. durch ein U*E zu ersetzen in der einzulesenden Datei o.ä. Wenn ich dass dann einlese wollte ich nach U*E suchen und dieses durch Ü beim wegschreiben ersetzen.

    Wenn ich das Dokument dann öffne krieg ich einen Fehler, weil daraus irgendein Sonderzeichen entstanden ist, mit dem die Anwendung nicht klar kommt. Zumindest mal kein gewünschtes Ü.

    Wie kommt das? Das hätte doch eigentlich funktionieren müssen. Wenn die einzulesende Datei komplett ohne Umlaute erzeugt wird und ich diese dann nur noch einlese?

    (Ich arbeite unter Windows XP, mit VC2008-Express, falls das was zu heißen hat...?)



  • Das ist doch völlig Latte, was der Inhalt ist. Ä hin, ü her, der Inhalt von binär kopiertem Zeugs darf kein stream einfach so ändern.



  • hm, ok

    habs denk ich jetzt im griff.

    problem war word 2003, scheinbar braucht word 2003 für umlaute wide-char werte. Wenn ich dann ein Ü lese, setze ich für das schreiben in meine word-datei z.b. die werte 0xC3 0x9C anstelle des 0xDC(Ü).

    Danke für die Hilfe.


Anmelden zum Antworten