|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
проблема с TMemoryStream
Здравствуйте.
Пытаюсь заполнить 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, спасибо, просто надо было обнулять позицию стрима, в функции вывода мемо. Щас попробую копировать содержимое стримов, если что спрошу)))
|