VB-Tec.de Visual Basic - Technik, FAQ, Tricks, BeispieleHome / Daten / Dateien / ConvertFile DOS-Dateien nach Windows (und umgekehrt) |
Private Declare Function OemToCharA Lib "user32" ( _
ByVal lpszSrc As String, ByVal lpszDst As String) As Long
Private Declare Function CharToOemA Lib "user32" ( _
ByVal lpszSrc As String, ByVal lpszDst As String) As Long
Der eigentliche Code zur Block-weisen Umsetzung einer Datei sieht so aus:
Sub ConvertFile( _
ByRef Path As String, _
Optional ByVal AsWin As Boolean = True _
)
Dim hFile As Long
Dim sOrg As String
Dim sConv As String
Dim nPos As Long
'Blockweise konvertieren:
sOrg = Space$(4096)
sConv = sOrg
hFile = FreeFile
Open Path For Binary As #hFile
For nPos = 1 To LOF(hFile) Step Len(sOrg)
If nPos > LOF(hFile) - Len(sOrg) Then
'Restblock-Größe bestimmen:
sOrg = Space$(LOF(hFile) - nPos + 1)
sConv = sOrg
End If
Get #hFile, , sOrg
If AsWin Then
'DOS -> Windows:
OemToCharA sOrg, sConv
Else
'Windows -> DOS:
CharToOemA sOrg, sConv
End If
If sOrg <> sConv Then Put #hFile, nPos, sConv
Next nPos
Close #hFile
End Sub
© Jost Schwider, 07.12.2000-07.12.2000 - http://vb-tec.de/convfile.htm