![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| PaZ1T1V |
|
||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 169 Регистрация: 26.2.2008 Где: Багдад ) Репутация: нет Всего: нет |
Доброго времени суток, в общем вопрос в следующем:
имеется структура
в общем файл состоит из этой структурки сначала и еще кучи байт... в роде с сериализацией, то есть записью в файл все понятно и работает, примеров навалом, а вот как из файла ее обратно в структурку разом запихать, немного не понимаю, то есть пишу так
после этого кода приложение выкидывает экзепшн с текстом The input stream is not a valid binary format. The starting contents (in bytes) are: 42-4D-36-B4-04-00-00-00-00-00-76-00-00-00-28-00-00 ... эмммм.... пишу вот такую строчку для десериализации, точнее хочу удостовериться в том что он что то считал
, но все равно компилятор выкидывает тот же SerializationException что это, точнее нет, почему это так происходит ? Помогите пожалуйста решить данную проблему! советы типа "читай побайтно" не годятся... с уважением. Это сообщение отредактировал(а) PaZ1T1V - 9.12.2009, 21:57 --------------------
[size=8]Atention please!!![/size] [size=6]Кривые руки[/size] |
||||||
|
|||||||
| Heinzz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 381 Регистрация: 12.12.2008 Где: .net Репутация: 5 Всего: 9 |
||||
|
||||
| PaZ1T1V |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 169 Регистрация: 26.2.2008 Где: Багдад ) Репутация: нет Всего: нет |
ну да, в структуре у меня три поля, но потом в этот файл я запихиваю еще данные так же бинарной запиью... --------------------
[size=8]Atention please!!![/size] [size=6]Кривые руки[/size] |
||||
|
|||||
| Heinzz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 381 Регистрация: 12.12.2008 Где: .net Репутация: 5 Всего: 9 |
а Вы из точно полностью убираете перед десериализацией?
Добавлено через 4 минуты и 39 секунд Не правильно это в файл сериализации дописывать. Если эти данные что Вы дописали неразрывно связаны с сериализуемым объектом, то необходимо писать свой сериализатор для класса который учтет Ваше желание записать что-то еще. |
|||
|
||||
| PaZ1T1V |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 169 Регистрация: 26.2.2008 Где: Багдад ) Репутация: нет Всего: нет |
извините, не понял вопроса.... в общем, файл состоит из байтов, где первые 10 байт это моя структура, затем идет что то остальное, не важно что, какие то данные, вот, мне надо бы сразу вытащить эти первые 10 байт и пихнуть их в структуру, то есть сделать как в сях fread(FileHeader,1,1,sizeof(FILEHEADER)); только под дотнет и на C#, мне сказали так возможно сдеалть только при помощи Desirialize,вот... я и пытаюсь это сделать, но что то не выходит, спросил совета/помощи на форуме.... Это сообщение отредактировал(а) PaZ1T1V - 9.12.2009, 22:35 --------------------
[size=8]Atention please!!![/size] [size=6]Кривые руки[/size] |
|||
|
||||
| Heinzz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 381 Регистрация: 12.12.2008 Где: .net Репутация: 5 Всего: 9 |
Перед сериализацией стандартными методами надо лишнее из файла убрать.
структура Ваша занимает под 200Байт, совсем не 10. Добавлено через 12 минут и 41 секунду Мне кажется это Вам подойдет, BinaryReader/BinaryWriter - файлы компактные, дописывайте что угодно, главное не забыть последовательность.
|
|||
|
||||
| PaZ1T1V |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 169 Регистрация: 26.2.2008 Где: Багдад ) Репутация: нет Всего: нет |
а почему 200 байт??? два инта размерностью по 4 байта каждый да шорт который весит 2 байта итого 10 или я не прав ???объясните.. большое спасибо за помощ... Это сообщение отредактировал(а) PaZ1T1V - 10.12.2009, 06:44 --------------------
[size=8]Atention please!!![/size] [size=6]Кривые руки[/size] |
|||
|
||||
| Heinzz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 381 Регистрация: 12.12.2008 Где: .net Репутация: 5 Всего: 9 |
там есть еще и такая информация а это 137 символов ASCII по байту, вот и выходит:
так что можно сделать свой метод ReadFILEHEADER который через BinaryReader читает Вашу структуру, которая в таком раскладе и займет 10Байт ну и для записи конечно тоже.. |
|||
|
||||
| PaZ1T1V |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 169 Регистрация: 26.2.2008 Где: Багдад ) Репутация: нет Всего: нет |
спасибо большое за помошь, все так как вы сказали сделал, все работает, тема закрыта.
--------------------
[size=8]Atention please!!![/size] [size=6]Кривые руки[/size] |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |