Форум: "Основная";
Текущий архив: 2003.08.25;
Скачать: [xml.tar.bz2];
Вниззапихнуть массив в TMemoryStream Найти похожие ветки
← →
Zorik (2003-08-12 12:06) [0]Здраствуйте!
У меня есть структура
type
TGraphPoint = record
X, Y: Real;
end;
TPointArray = array of TGraphPoint;
TGraphLine = record
Line: Integer;
Points: TPointArray;
end;
var<b/>
GraphLine: TGraphLine;
Так вот нужно этот GraphLine записать в TMemoryStream а потом оттуда прчитать в такую же структуру.
Пожалуйста с полным примером кода, а то я в этих байтах и поинтерах не очень силен
Спасибо
← →
Reindeer Moss Eater (2003-08-12 12:14) [1]Так ты начни писать. А когда дойдешь до байтов и пойнтеров, так и задай свой вопрос.
← →
Zorik (2003-08-12 12:20) [2]try
ms:=TMemoryStream.Create;
ms.Position:=0;
а дальше - не знаю, что-то типа ms.Read(Buffer,Count) ????
Вместо buffer писать GraphLine ...пробувал- не получается
...
...
finally
ms.Free;
end;
← →
Reindeer Moss Eater (2003-08-12 12:24) [3]А ты не заметил, что у тебя в TGraphLine есть поле Points типа динамического массива?
Не возникла мысль определить его текущую длину?
Размер, занимаемый массивом в памяти?
Цикл на худой конец по элементам организовать не думал?
← →
Zorik (2003-08-12 12:40) [4]Так вот дайте кокой-то пример а то я нигде не нашел, а я по єтому примеру для себя сделаю. Теоретически я понимаю, но никогда такого не делал, ведь есть много ньюансов, типа выделение памяти на сам масив плюс на заголовок и т. д. Я с этим, если не найду примера, месац мучится буду. Неужели так трудно, если знаеш, дать кусочек грамотного кода (я же не прошу всю процедуру написать). Плиз!!!
← →
icWasya (2003-08-12 12:43) [5]
procedure WriteTPoint (ms:TStream; const P:TGraphPoint );
begin
ms.Write(P,SiseOf(P));
end;
procedure WriteTPointArray (ms:TStream; const Points:TPointArray );
Var I,L:Cardinal;
begin
L:=Length(Points);
ms.Write(L,ZiseOf(L));
for I:=0 to L-1 do begin
WriteTPoint (ms, Points[I]);
end;
end;
procedure WriteTGraphLine (ms:TStream; const G:TGraphLine );
begin
ms.Write(G.Line,SiseOf(G.Line));
WriteTPointArray (ms,Points);
end;
procedure ReadTPoint (ms:TStream; var P:TGraphPoint );
begin
ms.Read(P,SiseOf(P));
end;
procedure ReadTPointArray (ms:TStream; var Points:TPointArray );
Var I,L:Cardinal;
begin
ms.Read(L,ZiseOf(L));
SetLength(Points,L);
for I:=0 to L-1 do begin
ReadTPoint (ms, Points[I]);
end;
end;
procedure ReadTGraphLine (ms:TStream; var G:TGraphLine );
begin
ms.Read(G.Line,SiseOf(G.Line));
ReadTPointArray (ms,Points);
end;
← →
Zorik (2003-08-12 12:46) [6]Спасибо Всем!!!
Иду пробовать что получится
← →
Reindeer Moss Eater (2003-08-12 13:23) [7]Дали несчастному рыбку, а ведь мог научиться и удочкой пользоваться.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.08.25;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c