# windows umlaute unter dos drucken



## koma666 (18. September 2002)

Hi schon wieder ich, ich hab hier ein text file, wenn ich das unter Dos drucke dann sind die umlaute komische sonderzeichen.

die txt datei erstell ich mit vb, writeline

jetzt hab ich schon was gefunden, nämlich die WintoDos$(uebersetz$),
der spass geht aber nur mit vba, weis jemand wie ich das in VB mach ?


----------



## Dario Linsky (18. September 2002)

ich glaube, das liegt daran, dass windows für die dos-konsole die codeseite 850 als zeichensatz benutzt, aber ausserhalb der dos-konsole den typischen ansi-zeichensatz. ich bin mir zwar nicht wirklich sicher, aber im zweifelsfall kannst du ja einfach mal die dezimalwerte deiner umlaute ausgeben lassen.

codeseite 850:
ä = 132; Ä = 142; ö = 148; Ö = 153; ü = 154

ansi:
ä = 228; Ä = 196; ö = 246; Ö = 214; ü = 252; Ü = 220; ß = 223


----------



## koma666 (19. September 2002)

hab mir ne funktion gebastelt, die alle sonderzeichen ins dos "übersetzt"
wens interessiert oder wers braucht, damit er ned so viel tippen muss *g*
hier ist sie.
wenn einer nen fehler findet gleich sagen


Private Function replace_uml(ByRef t) As Boolean
    asciiarr = Array(18, 19, 22, 23, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 181, 182, 183, 184, 189, 190, 198, 199, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 148)
    ansiarr = Array(137, 134, 135, 133, 202, 199, 252, 233, 226, 228, 224, 229, 231, 234, 235, 232, 239, 238, 236, 196, 197, 201, 230, 198, 244, 246, 251, 249, 255, 214, 220, 162, 163, 204, 195, 221, 225, 237, 243, 250, 241, 209, 208, 240, 194, 174, 172, 138, 154, 253, 219, 190, 185, 222, 254, 180, 145, 136, 149, 168, 166, 227, 179, 186, 175, 215, 171, 184, 191, 146, 169, 216, 164, 161, 129, 128, 173, 247, 151, 223, 152, 153, 188, 155, 181, 177, 150, 157, 144, 147, 148, 248, 170, 200, 206, 205, 217, 218, 213, 245, 211, 192, 176, 193, 183, 212, 210, 203, 207, 246)
    Text = ""
    For u = 1 To Len(t)
        buchstabe = Mid(t, u, 1)
        For i = 0 To UBound(asciiarr)
            If Asc(buchstabe) = ansiarr(i) Then
                buchstabe = Chr(asciiarr(i))
                Exit For
            End If
        Next
        Text = Text & buchstabe
    Next
    t = Text
    replace_uml = True
End Function


----------

