![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Здравствуйте.
Пытаюсь заполнить TMemoryStream одним числом таким способом: Код:
var MemStream: TMemoryStream;
i, buf:byte;
begin
try
MemStream := TMemoryStream.Create;
buf := 5;
for i := 0 to 4 do
begin
MemStream.Write(buf, SizeOf(buf));
end;
StreamToMemo(MemStream, Memo);
finally
MemStream.Free;
end;
end;Смотрю как она выглядит функцией StreamToMemo, а там вместо чисел buf одни нули. Также при копировании ее в любую другую TStream выдает ошибку Stream read error. Функция StreamToMemo испробована на TFileStream и работает без косяков. |
|
#2
|
||||
|
||||
|
Код:
type
TForm1 = class(TForm)
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
procedure Stream2Memo(AStream: TStream; AMemo: TMemo);
var
i: Integer;
Buf: Byte;
begin
AStream.Position:=0;
AMemo.Clear;
for i:=0 to AStream.Size-1 do
begin
AStream.Read(Buf, SizeOf(Buf));
AMemo.Lines.Add(IntToStr(Buf));
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
AMemoryStream: TMemoryStream;
i: Integer;
b: Byte;
begin
AMemoryStream:=TMemoryStream.Create;
try
for i:=0 to 4 do
begin
b:=i*10;
AMemoryStream.Write(b, SizeOf(b));
end;
Stream2Memo(AMemoryStream, Memo1);
finally
AMemoryStream.Free;
end;
end;все честно - в Memo1 будет: Цитата:
|
|
#3
|
|||
|
|||
|
NumLock, спасибо, просто надо было обнулять позицию стрима, в функции вывода мемо. Щас попробую копировать содержимое стримов, если что спрошу)))
|