Страница: 1 |
Страница: 1 |
Вопрос: Получить данные из Object в Byte() массив
Добавлено: 02.04.08 16:33
Автор вопроса: FIX | ICQ: 348680795
Всем привет! Имеется структура
Public Structure clsLog
Public ID As Integer
Public Content As String
Public BaseType As String
Public Type As String
Public Level As Short
Public CreatingDate As Date
End Structure
эта структура ппередается в процедуру примерно так
Public Sub SaveStructure(ByRef pStructure As Object)
'...
End Sub
надо в этой процедуре поместить все данные структуры в массив байтов. Кто знает как это реализовать? Спасибо.
Ответы
Всего ответов: 7
Номер ответа: 1
Автор ответа:
sergeisin
ICQ: 465419785
Вопросов: 1
Ответов: 1
Профиль | | #1
Добавлено: 02.04.08 18:40
Если тебе нужно сохранить её, то вместо струстуры создай класс (идентичный) с атрибутом [Serializable] и сохрани его как XML, если же таких структур много, то пихай их в ArrayList.
я пишу на C#, но думаю понятно...
clsLog my = new clsLog();
Object obj = my;
//Затем твоя функция
SaveStructure(ref obj)
{
clsLog Log = (clsLog)obj;
//делаем всё что нужно с Log
obj = Log;
}
P.S. Твой ref излишен. просто пусть твоя функция возвращает обЪект типа Log, ещё лучше было бы функцию держать в классе (иметь прямой доступ). Удачи.
Номер ответа: 2
Автор ответа:
s12
Вопросов: 24
Ответов: 363
Профиль | | #2
Добавлено: 03.04.08 01:45
Может, конечно, я чего-то не понял, но как ты собираешся сохранять в одном(!) массиве разнотипные данные? Или это новая фишка .NET :?
Номер ответа: 3
Автор ответа:
FIX
ICQ: 348680795
Вопросов: 39
Ответов: 62
Профиль | | #3
Добавлено: 03.04.08 22:10
функция задумана как раз для того чтобы сохранять в файл любую структуру, поэтому напрямую не получится. Раз можно получить размер Len(pStructure) любой структуры, то возможно наврное и ее данные. Есть вариант прочитать на прямую данные в памяти. Но может есть другой способ?
Номер ответа: 4
Автор ответа:
FIX
ICQ: 348680795
Вопросов: 39
Ответов: 62
Профиль | | #4
Добавлено: 03.04.08 22:16
To s12
В байтовый массив можно записать любые данные любых типов. Только потом самому соотнести какие байты к каким типам относятся
Номер ответа: 5
Автор ответа:
s12
Вопросов: 24
Ответов: 363
Профиль | | #5
Добавлено: 04.04.08 01:31
А-а допетрил.
А чем тебя этот вариант не устраивает?
Номер ответа: 6
Автор ответа:
FIX
ICQ: 348680795
Вопросов: 39
Ответов: 62
Профиль | | #6
Добавлено: 04.04.08 11:06
А как это можно сделать? API или есть класс какой нибудь?
Номер ответа: 7
Автор ответа:
Администратор
ICQ: 278109632
Вопросов: 42
Ответов: 3949
Web-сайт:
Профиль | | #7
Добавлено: 08.04.08 00:53
Public BaseType As String
Public Type As String
Тут будут лежать указатели на строки, а тебе нужны сами строки. Поэтому придется обойтись без байтового массива или очень погеморроиться.