Mit C# eine Datei im MS-DOS Format erstellen?
-
Hallo C# Profis!
Wie der Titel schon sagt hab ich das Problem, dass ich mittels C# eine Datei im MS-DOS Format schreiben will. Mein erstes Problem war die Umlaute richtig zu schreiben. Daraufhin hab ich im Archiv gesucht und prompt die richtige Loesung gefunden (indem ich dem StreamWriter einfach die richtige Codepage mitgebe).
Bsp:
Encoding enc = Encoding.GetEncoding(1252); StreamWriter sr = new StreamWriter( dateiname, enc);
Jetzt stehe ich allerdings vor dem Problem, dass zwar die Zeichen im ASCII Format im File stehen, die Datei selbst anscheinend aber nicht als MS-DOS file anerkannt wird. Mein momentaner WorkAround ist, dass ich die betroffene Datei mit dem UltraEdit oeffne. Der fragt mich dann ob ich sie ins MS-DOS format konvertieren will. Wenn ich das mache, funktioniert meine MS-DOS Anwendung mit der Datei. Vorher nicht.
Kann ich vielleicht irgendeinen Parameter beim Erzeugen der Datei aendern? Was mache ich falsch?
-
Hi!
Vielleicht eine doofe Frage, aber...
Was ist eine Datei im MS-DOS-Format??? Soll das eine BAT-Datei sein oder was?
Kann damit irgendwie gar nichts anfangen.Code-Hacker
-
Gute Frage! Hab ich mir auch schon gestellt.
Im Prinzip ist die Datei die geschrieben wird, eine ganz normale .txt Datei. Nur eben mit ASCII Daten drinnen.
Aber alleine das Schreiben von ASCII Zeichen reicht dem lesenden MS-DOS Programm nicht. Erst nach der oben erwaehnten Konvertierung mit UltraEdit funktioniert mein Export.
-
using (FileStream fs = new FileStream(Zieldatei, FileMode.Create))
{
using (System.IO.StreamWriter file =
new System.IO.StreamWriter(fs,System.Text.Encoding.GetEncoding(852)))
{
file.riteLine("äüöß");
}
}
-
Die für MS-DOS richtige Codepage (für Latin-1) sollte 850 sein, s. Codepage sowie Codepage 850
1252 ist die Windows-Codepage (für Latin-1).