Страница: 1 |
Страница: 1 |
Вопрос: Как перекодировать строку из файла в DOS кодировке
Добавлено: 17.03.05 12:53
Автор вопроса: Anatoliy
Вот такая функция:
Private Function ReadImportLines1(ByVal sFilePath As String) As ArrayList
Dim mFile As StreamReader
Dim strLine As String = ""
Dim arrLtRet As New ArrayList 'массив возвращаемых строк
Try
mFile = New StreamReader(sFilePath)
While Not (mFile.Peek = -1)
'вот здесь strLine представляестя в виде кракозябров.
strLine = mFile.ReadLine
arrLtRet.Add(strLine)
End While 'Not (mFile.Peek = -1)
Catch ex As Exception
MsgBox(ex.Message)
End Try
mFile.Close()
Return arrLtRet
End Function
Ответы
Всего ответов: 6
Номер ответа: 1
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #1
Добавлено: 17.03.05 13:08
Вот эти 2 функции:
Private Declare Function CharToOem Lib "user32.dll" Alias "CharToOemA" (ByVal lpszSrc As String, ByVal lpszDst As String) As Long
Private Declare Function OemToChar Lib "user32.dll" Alias "OemToCharA" (ByVal lpszSrc As String, ByVal lpszDst As String) As Long
Первая в ДОС, а вторая из ДОСа.
Номер ответа: 2
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #2
Добавлено: 17.03.05 13:13
Только не забудь длину приёмника приравнять длине источника.
Dim lpszDst As String
lpszDst = Space$(lpszSrc)
OemToChar lpszSrc, lpszDst
Номер ответа: 3
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #3
Добавлено: 17.03.05 13:13
Ой, не заметил что форум .NET
Прошу прощения
Номер ответа: 4
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #4
Добавлено: 17.03.05 13:28
Dim StrDOS As String = mFile.ReadLine
Dim StrWin As String = _
System.Text.Encoding.Default.GetString(_
System.Text.Encoding.GetEncoding(866).GetBytes(StrDOS))
Номер ответа: 5
Автор ответа:
Артём Л.
ICQ: 280044491
Вопросов: 43
Ответов: 227
Профиль | | #5
Добавлено: 17.03.05 13:28
в конструктор ридера вроде можна передать нужную кодировку например
System.Text.Encoding.GetEncoding(1251)
Номер ответа: 6
Автор ответа:
Anatoliy
Вопросов: 7
Ответов: 10
Профиль | | #6
Добавлено: 17.03.05 15:10
To Артем Л
Спасибо. В данном случае это наиболее пиемлемое решение