Вниз
Скачать: CL | DM;

Проблемы с TStream   Найти похожие ветки 

← →
Grim   (2004-11-30 17:11) [0]

Доброго времени суток всем!

Есть такие процедуры.

type
 TActorInfo = record
   Model: Byte;
   Number: String[10];
   Course, Speed,
   X, Z: Single;
   Enabled: Boolean;
 end;

 TActorList = array of TActorInfo;

procedure Array2Stream(const A: TActorList; S: TStream);
procedure Stream2Array(var A: TActorList; S: TStream);

implementation

procedure Array2Stream(const A: TActorList; S: TStream);
var
 Size, Index: Integer;
begin
 // Write out the size of the array
 Size := Length(A);
 S.Write(Size, SizeOf(Size));

 for Index := 0 to Size - 1
 do S.Write(A[Index], SizeOf(TActorInfo));
end;

procedure Stream2Array(var A: TActorList; S: TStream);
var
 Size, Index: Integer;
begin
 S.Read(Size, SizeOf(Size));
 SetLength(A, Size);
 for Index := 0 to Size - 1
 do S.Read(A[Index], SizeOf(TActorInfo));
end;

Когда я Делаю Array2Stream(Arr, FileStream); //записываю массив в файл
А потом Stream2Array(..., то все все перекрасно работает.
А если я скидываю массив в MemoryStream, и посылаю через idUDPClient.SendBuffer(IP, Port, MemStream, MemStream.Size);
то на другом конце массив преобразуется обратно некорректно.
Я даже на том конце сохранять в FileStream. Полученный файл совпадает по размеру, но не по содержанию - с файлом, сохраненным "здесь".
В чем может быть дело? Заранее благодарен за советы.


← →
Alex_Petr ©   (2004-11-30 19:04) [1]

Может надо использовать MemStream.Memory ?


← →
Grim   (2004-12-01 17:01) [2]

Только что попробовал отсылать MemStream.Memory^. Заработало! Огромное спасибо за подсказку. Я этого свойства даже не приметил.


← →
Grim   (2004-12-01 17:01) [3]

Только что попробовал отсылать MemStream.Memory^. Заработало! Огромное спасибо за подсказку. Я этого свойства даже не приметил.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.021 c
14-1101782768
Думкин
2004-11-30 05:46
2004.12.19
С днем рождения! 30 ноября


3-1100789541
serg9
2004-11-18 17:52
2004.12.19
Редактировать DBGrid подключен к интербазе через квери.


11-1084281508
Рома
2004-05-11 17:18
2004.12.19
Снимок с экрана


14-1101503948
GanibalLector
2004-11-27 00:19
2004.12.19
переводчик


14-1101796819
uny
2004-11-30 09:40
2004.12.19
человеческий фактор или свобода?




   Наверх