Хаюшки!
А в VB есть родные функции для перекодировки WIN <-> DOS (ANSI <-> OEM) типа API-ых CharToOEM, OEMToChar?
Public Function toWin(S As String) As String
Dim i As Long, wrk As String, ch As Byte
wrk = ""
For i = 1 To Len(S)
ch = Asc(mid(S, i, 1))
If ch <= 127 Then wrk = wrk + Chr(ch)
If ch >= 127 And ch <= 175 Then wrk = wrk + Chr(ch + 64)
If ch >= 176 And ch <= 191 Then wrk = wrk + Chr(ch)
If ch >= 192 And ch <= 223 Then wrk = wrk + Chr(ch - 64)
If ch >= 224 And ch <= 239 Then wrk = wrk + Chr(ch + 16)
If ch >= 240 And ch <= 255 Then wrk = wrk + Chr(ch - 80)
Next i
toWin = wrk
End Function
я лет семь назад сам писал функцию, нашел в архиве
Public Function VbOemToChar(ByVal s As String) As String
Dim j As Long, i As Long
For i = 1 To Len(s)
j = Asc(Mid$(s, i, 1))
Select Case j
Case Is <= 127
Case 128 To 175: Mid$(s, i, 1) = Chr$(j + 64)
Case 176 To 191: Mid$(s, i, 1) = Chr$(j)
Case 192 To 223: Mid$(s, i, 1) = Chr$(j - 64)
Case 224 To 239: Mid$(s, i, 1) = Chr$(j + 16)
Case Else: Mid$(s, i, 1) = Chr$(j - 80)
End Select
Next i
VbOemToChar = s
End Function
Сейчас этот форум просматривают: SemrushBot и гости: 4