Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > Конвертирование текста из DOS-кодировки в Windows


Автор: cardinal 31.5.2005, 16:43
Код

Declare Function CharToOemBuff Lib "user32" Alias "CharToOemBuffA" (ByVal lpszSrc As String, ByVal lpszDst As String, _
ByVal cchDstLength As Long) As Long
Declare Function OemToCharBuff Lib "user32" Alias "OemToCharBuffA" (ByVal lpszSrc As String, ByVal lpszDst As String, _
ByVal cchDstLength As Long) As Long

Public Function ToAnsi(s As String) As String
    Dim Buffer As String
    Buffer = Space(Len(s) + 1)
    OemToCharBuff s, Buffer, Len(s)
    ToAnsi = Left(Buffer, Len(s))
End Function

Public Function ToOEM(s As String) As String
    Dim Buffer As String
    Buffer = Space(Len(s) + 1)
    CharToOemBuff s, Buffer, Len(s)
    ToOEM = Left(Buffer, Len(s))
End Function


Использование:

Код

sAnsi = ToAnsi("Дарт Вейдер")    ' Из DOS в Windows
sDos = ToOEM("Дарт Вейдер")    ' Из Windows в Dos


Примечание:
 Данные функции работают корректно только на русской Windows или на корректно русифицированной паневропейской

Источник: vb.astral.kiev.ua

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)