DOS Cyrilic
2 отговора
196 прегледа
DOS Cyrilic
Първо искам да се извиня на администратора и на всички посещаващи форума за това, че поствам тема, подобна на предишна такава, но за съжаление в предишната си тема не намерих отговор може би поради факта, че не бях обяснил добре проблема си. А той е следния:
Имам една DBF база данни, която се попълва от една досовска програма. Данните от DBF -a искам да ги прехвърля в mdb база данни. При прехвърлянето на текста, той се превръща в йероглифи. Предполагам, че проблема се дължи на различната кодировка в DOS. Нямам Flex Type или друг "кирилизатор". Някой сблъсквал ли се е с подобен проблем?
Имам една DBF база данни, която се попълва от една досовска програма. Данните от DBF -a искам да ги прехвърля в mdb база данни. При прехвърлянето на текста, той се превръща в йероглифи. Предполагам, че проблема се дължи на различната кодировка в DOS. Нямам Flex Type или друг "кирилизатор". Някой сблъсквал ли се е с подобен проблем?
Re: DOS Cyrilic
Private Sub ConvertOemCharToWinChar(ByRef strToConvert As String)
Dim intNumChar As Long
Dim StrWinChar As String
For intNumChar = 1 To Len(strToConvert)
Select Case Asc(Mid(strToConvert, intNumChar, 1))
Case 9, 13, 10
StrWinChar = StrWinChar + Chr(Asc(Mid(strToConvert, intNumChar, 1)))
Case 32 To 126
StrWinChar = StrWinChar + Chr(Asc(Mid(strToConvert, intNumChar, 1)))
Case 128 To 175
StrWinChar = StrWinChar + Chr(Asc(Mid(strToConvert, intNumChar, 1)) + 64)
Case 224 To 239
StrWinChar = StrWinChar + Chr(Asc(Mid(strToConvert, intNumChar, 1)) + 16)
End Select
Next intNumChar
strToConvert = StrWinChar
End Sub
Dim intNumChar As Long
Dim StrWinChar As String
For intNumChar = 1 To Len(strToConvert)
Select Case Asc(Mid(strToConvert, intNumChar, 1))
Case 9, 13, 10
StrWinChar = StrWinChar + Chr(Asc(Mid(strToConvert, intNumChar, 1)))
Case 32 To 126
StrWinChar = StrWinChar + Chr(Asc(Mid(strToConvert, intNumChar, 1)))
Case 128 To 175
StrWinChar = StrWinChar + Chr(Asc(Mid(strToConvert, intNumChar, 1)) + 64)
Case 224 To 239
StrWinChar = StrWinChar + Chr(Asc(Mid(strToConvert, intNumChar, 1)) + 16)
End Select
Next intNumChar
strToConvert = StrWinChar
End Sub
Re: DOS Cyrilic
Много ти благодаря за решението. Кода работи добре, но при някои букви греши и не мога да разбера защо...