Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 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-сайт: basicproduction.nm.ru
 Профиль | | #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-сайт: basicproduction.nm.ru
 Профиль | | #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-сайт: basicproduction.nm.ru
 Профиль | | #3
Добавлено: 17.03.05 13:13
Ой, не заметил что форум .NET
 Прошу прощения :)

Ответить

Номер ответа: 4
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #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 Артем Л
Спасибо. В данном случае это наиболее пиемлемое решение

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам