Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.145.93.210] |
|
Сообщ.
#1
,
|
|
|
Некоторая программма под виндами принимает (вводит с клавиатуры) символы в обычной русской кодировке (1251), после этого программа передает введенную информацию устройству работаещему в псевдо русской кодировке. Устройство принимающее информацию не иммеет возможности перекодировать информацию, то есть данную функцию должна выполнить программа, но доступа к исходному коду программы нет.
Каким образом можно решить данную проблему? Можно ли во время ввода информации переключать кодовую страницу? Как можно добавить нестандартную кодовую страницу? Буду очень благодарен любой информации по данному вопросу. |
Сообщ.
#2
,
|
|
|
Короче, вот тебе функции перевода OEM <-> ALT:
Function Dos2Win(S As String) As String Dim i As Integer, j As Integer Dim Res As String Res = "" For i = 1 To Len(S) j = Asc(Mid(S, i, 1)) Select Case j Case 128 To 175: Res = Res + Chr(j + 64) Case 224 To 239: Res = Res + Chr(j + 16) Case 240: Res = Res + Chr(168) Case 241: Res = Res + Chr(184) Case Else: Res = Res + Chr(j) End Select Next i Dos2Win = Res End Function Function Win2Dos(S As String) As String Dim i As Integer, j As Integer Dim Res As String Res = "" For i = 1 To Len(S) j = Asc(Mid(S, i, 1)) Select Case j Case 192 To 239: Res = Res + Chr(j - 64) Case 240 To 255: Res = Res + Chr(j - 16) Case 168: Res = Res + Chr(240) Case 184: Res = Res + Chr(241) Case Else: Res = Res + Chr(j) End Select Next i Win2Dos = Res End Function |