Форум: "Основная";
Текущий архив: 2004.12.19;
Скачать: [xml.tar.bz2];
Вниз
Проблемы с 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 вся ветка
Форум: "Основная";
Текущий архив: 2004.12.19;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.041 c