Autor Beitrag
ani
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 77

Windows Vista Home Premium
C#(VS 2008)
BeitragVerfasst: Mo 24.10.05 12:27 
Huhu,

ich speichere einen Text in eine Word-Datei. Wenn ich die Datei dann öffnen will muss ich die Codierung angeben. Kann ich den Text schon in einer bestimmten Codierung speichern, damit der die Datei ohne Fragerei nach der Codierung öffnet?
Wenn ich es mit CreateText() mache geht es trotzdem nicht :)

ausblenden C#-Quelltext
1:
2:
3:
4:
FileInfo datei33 = new FileInfo(@"C:\neu\test3.doc");
StreamWriter niederschrift = datei33.CreateText();
niederschrift.WriteLine("Text");
niederschrift.Close();


Ich hab einfache Strings und noch Zeilen aus einer Word-Datei. Vielleicht hängt es daran, dass da Steuerzeichen drin sind, aber meiner Meinung nach müsste das egal sein, da ich ihm ja vorher sage (mit CreateText()) in welcher Codierung er es speichern soll.


Moderiert von user profile iconChristian S.: Topic aus C# - Die Sprache verschoben am Di 25.10.2005 um 09:23
FinalFantasy
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 127

Windows XP
Delphi 5 Professional, Visual Studio 7 .NET (C#)
BeitragVerfasst: Di 25.10.05 08:20 
Ich seh da nichts von Codierung... Was meinst du überhaupt mit Codierung? ASCII/Unicode oder wie?

Dir ist im übrigen schon klar, dass Worddokumente binary Files sind, in die man nicht unbedingt direkt reinschreiben sollte?!

Was willst du denn erreichen? Soll der Text nachher in dem Worddokument stehen?

Achja, Steuerzeichen können beim Schreiben in eine TEXT-Datei durchaus Probleme machen (vor allem, wenn null vorkommt)
ani Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 77

Windows Vista Home Premium
C#(VS 2008)
BeitragVerfasst: Di 25.10.05 08:56 
Hallo,

ja die CreateText()-Methode schreibt den Text angeblich in der UTF-8 Codierung, die ich auch benötige. Ich muss leider direkt in ein Word-Dokument schreiben, ich arbeite hier in einer Verwaltung ;)
Wenn ich dann meinen Text in die Word-Datei speichere und dann einen Doppelklick auf die Datei mache, frägt der mich was für eine Codierung ich benutzen will. Aber da ich ja die CreateText() verwende frag ich mich warum der mich fragt ;)
raziel
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2453

Arch Linux
JS (WebStorm), C#, C++/CLI, C++ (VS2013)
BeitragVerfasst: Di 25.10.05 09:25 
Hallo,

ich befürchte du hast da ein bisschen was missverstanden.

Du erzeugst da oben keine richtige Word .doc-Datei, sondern lediglich eine Textdatei und das ist schon ein gewaltiger Unterschied. Word benutzt ein binäres Format, um so Features wie Schriftformatierung, Bilder oder auch die Word-Datei Verschlüsselung zu realisieren - höchstwahrscheinlich wird dort auch irgendwo die Zeichencodierung gespeichert (oder sie ist immer gleich).

Solche Informationen hast du in deiner Text-Datei natürlich nicht. Das ist lediglich eine Anhäufung von Bytes, die unterschiedlich interpretiert unterschiedliche Ergebnisse liefern. Deshalb fragt Word auch nach.

D.h. konkret: Du kannst als Zeichensatz einstellen, was du willst, Word wird immer nachfragen. Einfach aus dem Grunde, weil die Zeichensatzeinstellung nur festlegt, WIE die einzelnen Zeichen gespeichert werden, diese Info wird aber nirgendwo hinterlegt -> Deshalb fragt Word nach.

Hoffe, dass das jetzt ein bisschen klarer ist ;)

Gruß,
raziel

_________________
JSXGraph
FinalFantasy
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 127

Windows XP
Delphi 5 Professional, Visual Studio 7 .NET (C#)
BeitragVerfasst: Di 25.10.05 09:40 
user profile iconraziel hat folgendes geschrieben:
Du erzeugst da oben keine richtige Word .doc-Datei, sondern lediglich eine Textdatei und das ist schon ein gewaltiger Unterschied. Word benutzt ein binäres Format, um so Features wie Schriftformatierung, Bilder oder auch die Word-Datei Verschlüsselung zu realisieren - höchstwahrscheinlich wird dort auch irgendwo die Zeichencodierung gespeichert (oder sie ist immer gleich).


Wie ich auch schon geschrieben habe :-)

Warum benutzt du nicht die COM-Schnittstelle um in Word zu schreiben?
Siehe deinen anderen Thread: www.c-sharp-forum.de...8&highlight=word
ani Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 77

Windows Vista Home Premium
C#(VS 2008)
BeitragVerfasst: Di 25.10.05 09:45 
gut jetzt weis ich schon mal mehr :)
Das mit der Com-Schnittstelle habe ich noch nicht ausprobiert, es wird mir aber wohl nix andres übrig bleiben.