Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: dat файл Добавлено: 28.07.09 22:07  

Автор вопроса:  Maloi
Доброго времени суток, уважаемые.
Есть файл с расширением dat. Нужно открыть его и прочитать строку. Открываю, читаю, а там кракозябры. Пробовал в разных кодировках, не помогает. Подскажите как быть, пожалуйста.

Ответить

  Ответы Всего ответов: 7  

Номер ответа: 1
Автор ответа:
 DesT



ICQ: 376533105 

Вопросов: 1
Ответов: 24
 Профиль | | #1 Добавлено: 28.07.09 23:53
это текстовый файл или бинарный?

Ответить

Номер ответа: 2
Автор ответа:
 Maloi



Вопросов: 20
Ответов: 28
 Профиль | | #2 Добавлено: 29.07.09 07:55
бинарный, со структурой.

Ответить

Номер ответа: 3
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #3
Добавлено: 29.07.09 09:41
Ты можешь показать код, которым ты сохраняешь его?

Ответить

Номер ответа: 4
Автор ответа:
 Maloi



Вопросов: 20
Ответов: 28
 Профиль | | #4 Добавлено: 29.07.09 09:55
Кода нет, сохраняю его не я. Я его получаю уже в таком виде и мне нужно оттуда забрать инфу.

Ответить

Номер ответа: 5
Автор ответа:
 Starkiller



ICQ: 123123 

Вопросов: 3
Ответов: 14
 Web-сайт: google.ru/
 Профиль | | #5
Добавлено: 29.07.09 11:32
System.IO.BinaryReader юзаешь?

Ответить

Номер ответа: 6
Автор ответа:
 Maloi



Вопросов: 20
Ответов: 28
 Профиль | | #6 Добавлено: 29.07.09 11:43
вот код. Вроде все должно работать, но выдает ошибку при записи в структуру

        ;Dim fStream As Stream
        ;Dim bStream As BinaryReader
        ;Dim i As Integer, j As String, str As String, a As Integer
        ;Dim fName As String
        ;Dim fLen As Integer, b As Byte
        ;Dim pr As Double
        ;Dim handle As New GCHandle
        ;Dim usStr = New ex 'Структура, определённая выше

                
        fStream = New FileStream(fName, FileMode.Open, FileAccess.Read)
        bStream = New BinaryReader(fStream, System.Text.Encoding.GetEncoding("UTF-8";))
        fLen = fStream.Length
        ;Dim Arr(fLen) As Byte
        
        a = Marshal.SizeOf(GetType(ex))
        Arr = bStream.ReadBytes(fLen)
        handle = handle.Alloc(Arr, GCHandleType.Pinned)
        usStr = Marshal.PtrToStructure(handle.AddrOfPinnedObject, GetType(ex)) 'Здесь выдает ошибку 'В экземпляре объекта не задана сылка на объект'
        handle.Free()
        pr = usStr.fPrice
        
        fStream.Close()
        bStream.Close()

Ответить

Номер ответа: 7
Автор ответа:
 Maloi



Вопросов: 20
Ответов: 28
 Профиль | | #7 Добавлено: 29.07.09 11:56
Поправил работает.
        ;Dim fStream As Stream
        ;Dim bStream As BinaryReader
        ;Dim i As Integer, j As String, str As String, a As Integer
        ;Dim fName As String
        ;Dim fLen As Integer, b As Byte
        ;Dim pr As Double
        ;Dim usStr = New ex 'Структура, определённая выше

                
        fStream = New FileStream(fName, FileMode.Open, FileAccess.Read)
        bStream = New BinaryReader(fStream, System.Text.Encoding.GetEncoding("UTF-8";))
        fLen = fStream.Length
        ;Dim Arr(fLen) As Byte
        ;Dim handle As GCHandle = GCHandle.Alloc(Arr, GCHandleType.Pinned)
        
        a = Marshal.SizeOf(GetType(ex))
        Arr = bStream.ReadBytes(fLen)
        usStr = Marshal.PtrToStructure(handle.AddrOfPinnedObject, GetType(ex))
        handle.Free()
        pr = usStr.fPrice
        
        fStream.Close()
        bStream.Close()

Только теперь другой вопрос, как все это прочитать из структуры?

Ответить

Страница: 1 |

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



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