Последовательное чтение из byte[]
От: M.A.V. Россия  
Дата: 07.04.08 08:17
Оценка:
Подскажите, пожалуйста, удобный способ последовательного считывания из byte[] на C#.
Основная задача, заполнить считанными данными поля в массиве объектов. В объектах встречаются UInt32 и Double-поля.

Или может лучшим вариантом будет хранение структуры в байтовом виде? А потом считывать её.

Заранее спасибо.
Re: Последовательное чтение из byte[]
От: Овощ http://www.google.com
Дата: 07.04.08 08:22
Оценка: +1
Может BinaryReader + MemoryStream ?
Re[2]: Последовательное чтение из byte[]
От: M.A.V. Россия  
Дата: 07.04.08 08:24
Оценка:
Здравствуйте, Овощ, Вы писали:

О>Может BinaryReader + MemoryStream ?


Спасибо, забыл про MemoryStream
Re: Последовательное чтение из byte[]
От: TK Лес кывт.рф
Дата: 07.04.08 08:25
Оценка:
Здравствуйте, M.A.V., Вы писали:

MAV>Подскажите, пожалуйста, удобный способ последовательного считывания из byte[] на C#.

MAV>Основная задача, заполнить считанными данными поля в массиве объектов. В объектах встречаются UInt32 и Double-поля.

Читать можно используя BinaryReader

MAV>Или может лучшим вариантом будет хранение структуры в байтовом виде? А потом считывать её.


Да, можно описать соотв. образом структуру и потом, восользоваться классом Marshal для копирования ее в двоичный вид
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[2]: Последовательное чтение из byte[]
От: M.A.V. Россия  
Дата: 07.04.08 08:56
Оценка:
Здравствуйте, TK, Вы писали:

TK>Здравствуйте, M.A.V., Вы писали:


MAV>>Или может лучшим вариантом будет хранение структуры в байтовом виде? А потом считывать её.


TK>Да, можно описать соотв. образом структуру и потом, восользоваться классом Marshal для копирования ее в двоичный вид


TK, подскажи, какой метод в Marshal нужно использовать?
Re[3]: Последовательное чтение из byte[]
От: TK Лес кывт.рф
Дата: 07.04.08 09:09
Оценка:
Здравствуйте, M.A.V., Вы писали:

MAV>TK, подскажи, какой метод в Marshal нужно использовать?


Marshal.PtrToStructure. Предварительно надо получить указатель на начало данной структуры в массиве (GCHandle.AddrOfPinnedObject)
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[4]: Последовательное чтение из byte[]
От: M.A.V. Россия  
Дата: 07.04.08 09:34
Оценка:
Здравствуйте, TK, Вы писали:

TK>Здравствуйте, M.A.V., Вы писали:


MAV>>TK, подскажи, какой метод в Marshal нужно использовать?


TK>Marshal.PtrToStructure. Предварительно надо получить указатель на начало данной структуры в массиве (GCHandle.AddrOfPinnedObject)


TK, а по поводу совместимости...
Если аналогичную структуру описать в С++ (в VS 6.0), записать её с данными в файл, считывая её из C# таким способом какие-нибудь проблемы могут быть?
Re[5]: Последовательное чтение из byte[]
От: TK Лес кывт.рф
Дата: 07.04.08 09:45
Оценка:
Здравствуйте, M.A.V., Вы писали:

MAV>Если аналогичную структуру описать в С++ (в VS 6.0), записать её с данными в файл, считывая её из C# таким способом какие-нибудь проблемы могут быть?


Тут основной минус — придется следить за тем, что-бы структуры в VS 6.0 и в C# были описаны одинаково.
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[6]: Последовательное чтение из byte[]
От: M.A.V. Россия  
Дата: 07.04.08 09:47
Оценка:
Здравствуйте, TK, Вы писали:

TK>Здравствуйте, M.A.V., Вы писали:


MAV>>Если аналогичную структуру описать в С++ (в VS 6.0), записать её с данными в файл, считывая её из C# таким способом какие-нибудь проблемы могут быть?


TK>Тут основной минус — придется следить за тем, что-бы структуры в VS 6.0 и в C# были описаны одинаково.


Да, это полагается само собой. Тогда будем действовать смело)
Спасибо большое.
Re[7]: Последовательное чтение из byte[]
От: TK Лес кывт.рф
Дата: 07.04.08 09:55
Оценка:
Здравствуйте, M.A.V., Вы писали:

MAV>Да, это полагается само собой. Тогда будем действовать смело)


Главное, надо не "пинить" массив на длительное время и не забывать его "отпускать"
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.