Tipp 0289 MS-DOS(OEM)-Textdateien konvertieren
Autor/Einsender:
Datum:
  Detlev Schubert
27.11.2002
Entwicklungsumgebung:   VB 5
Leider ist das Einlesen von Dateien, die mit dem Betriebssystem MS-DOS erstellt wurden, mit einigen Unannehmlichkeiten verbunden. So werden beispielsweise alle Sonderzeichen sowie Umlaute als "undefinierbare Zeichen" dargestellt, da unter MS-DOS ein ASCII-Zeichensatz verwendet wird, der mit dem von Windows verwendeten ANSI-Zeichensatz inkompatibel ist.
Mit den API-Funktionen OemToChar und CharToOem ist jedoch ein recht einfaches und unkompliziertes Konvertieren, sowohl von ACSII zu ANSI, als auch umgekehrt möglich.
 
Option Explicit

Private Declare Function OemToChar Lib "user32" Alias _
      "OemToCharA" (ByVal lpszSrc As String, ByVal _
      lpszDst As String) As Long

Private Sub cmdOpen_Click()
  Konvert_ASCII_ANSI False
End Sub

Private Sub cmdKonvert_Click()
  Konvert_ASCII_ANSI True
End Sub

Sub Konvert_ASCII_ANSI(konvert As Boolean)
  Dim strZeile As String
  Dim f As Integer

  f = FreeFile

  CDialogOpen.Filter = "Text-Dateien (*.txt)|*.txt"
  CDialogOpen.FileName = vbNullString
  CDialogOpen.InitDir = App.Path
  CDialogOpen.ShowOpen

  If CDialogOpen.FileName <> vbNullString Then
     Text1.Text = ""
     Open CDialogOpen.FileName For Input As #f
     While Not EOF(f)
        Line Input #f, strZeile
        If konvert Then OemToChar strZeile, strZeile
        Text1.Text = Text1.Text & vbCrLf & strZeile
     Wend
     Close #f
  End If
End Sub
 

Windows-Version
95
98/SE
ME
NT
2000
XP
Vista
Win 7
VB-Version
VBA 5
VBA 6
VB 4/16
VB 4/32
VB 5
VB 6


Download  (3,7 kB) Downloads bisher: [ 1551 ]

Vorheriger Tipp Zum Seitenanfang Nächster Tipp

Startseite | Projekte | Tutorials | API-Referenz | VB-/VBA-Tipps | Komponenten | Bücherecke | VB/VBA-Forum | VB.Net-Forum | DirectX-Forum | Foren-Archiv | DirectX | VB.Net-Tipps | Chat | Spielplatz | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report
Letzte Aktualisierung: Dienstag, 6. September 2011