Rubrik: Variablen/Strings · Sonstiges | VB-Versionen: VB4, VB5, VB6 | 07.04.02 |
ANSI-Zeichensatz nach DOS und umgekehrt Zwei API-Funktionen, um Zeichen aus dem DOS- in den Windows ANSI-Zeichensatz und umgekehrt zu konvertieren. | ||
Autor: Dieter Otter | Bewertung: | Views: 25.151 |
www.tools4vb.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Hatten Sie auch schon einmal das Problem, daß Sie Daten, die mit einer DOS-Anwendung erstellt wurden, unter Windows weiterverarbeiten mussten und hierbei festgestellt haben, daß so einige Zeichen unter Windows nicht korrekt dargestellt werden?
Abhilfe schafft hier das Windows-API. Es stellt uns zwei Funktionen zur Verfügung, mit denen sich Zeichenketten im DOS-Zeichensatz in den Windows ANSI-Zeichensatz konvertieren lassen - und umgekehrt.
' zunächst die beiden benötigten Deklarationen Private Declare Function OemToChar Lib "user32" _ Alias "OemToCharA" ( _ ByVal lpszSrc As String, _ ByVal lpszDst As String) As Long Private Declare Function CharToOem Lib "user32" _ Alias "CharToOemA" ( _ ByVal lpszSrc As String, _ ByVal lpszDst As String) As Long
Nachfolgende Funktionen konvertieren eine Zeichenkette in das gewünschte Format:
' DOS nach ANSI Public Function DOS_To_ANSI(ByVal sText As String) _ As String Dim lResult As Long Dim sANSI As String sANSI = Space$(Len(sText)) lResult = OemToChar(sText, sANSI) DOS_To_ANSI = sANSI End Function
' ANSI nach DOS Public Function ANSI_To_DOS(ByVal sText As String) _ As String Dim lResult As Long Dim sDOS As String sDOS = Space$(Len(sText)) lResult = CharToOem(sText, sDOS) ANSI_To_DOS = sDOS End Function