Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

MemoryStream


MemoryReader ©   (2005-01-31 16:36:00) 

Есть указать на область памяти, как считать последующие 100 байт? Например в TmemoryStream;
Или?
За ранее спасибо


Skier   (2005-01-31 18:00:00) [1]

Stream:=T MemoryStream.Create;
Stream.WriteBuffer(TTP, Sizeof(TTP));


Александр Иванов   (2005-01-31 17:58:00) [2]

type
Arr=array[1..100] of byte;
PArr=^Arr;
var Data:PArr;
P:Pointer;
i:integer;
...
Data:=P;
Stream:=TMemoryStream.Create;
Stream.Write(Data^,100);
...
Stream.Free;


MemoryReader   (2005-01-31 17:49:00) [3]

>Насколько я понял результатом должно быть заполнение переменной >>data (Stream.Readbuffer(data,sizeof(data));). Смысла нет >использовать TStream и его потомков. Если только это не >лабораторная работа.
Наоборот нужно  stream заполнить data'ой (writebuffer?)

>что есть Parr ?

type
Arr=array[1..100] of byte;
PArr=^Arr;


Skier   (2005-01-31 17:41:00) [4]

>MemoryReader   (31.01.05 17:29) [12]
что есть Parr ?


Александр Иванов   (2005-01-31 17:39:00) [5]

Насколько я понял результатом должно быть заполнение переменной data (Stream.Readbuffer(data,sizeof(data));). Смысла нет использовать TStream и его потомков. Если только это не лабораторная работа.


MemoryReader   (2005-01-31 17:37:00) [6]

Без stream в моем случае нельзя :(


Александр Иванов   (2005-01-31 17:31:00) [7]

Зачем тебе этот Stream? если можно обойтись без таких потерь?


MemoryReader   (2005-01-31 17:29:00) [8]

Делаю так: "Stream.Readbuffer(data,sizeof(data));" почему так делать нельзя?
var data:Parr;
begin
Stream:=TStream.Create;
Data:=@TTP;
Stream.Readbuffer(data,sizeof(data));
....
stream.free;
end;


Jay1982   (2005-01-31 17:22:00) [9]

BlockWrite(fl, p, 100)
fl - file
p - указатель на участок памяти


Александр Иванов   (2005-01-31 17:17:00) [10]

А [4] попробовал?
type
Arr=array[1..100] of byte;
PArr=^Arr;
var Data:PArr;
P:Pointer;
i:integer;
...
Data:=P;
for i:=1 to 100 do
ShowMessage(Data^[i]);


default   (2005-01-31 17:15:00) [11]

задай тогда вопрос понятнее


MemoryReader   (2005-01-31 17:12:00) [12]

не понял? причем тут move?


default   (2005-01-31 16:59:00) [13]

Move


Jay1982   (2005-01-31 16:53:00) [14]

BlockWrite'ом попробуй


MemoryReader   (2005-01-31 16:50:00) [15]

Может я не правильно выражаюсь :(
 seek(f,N);
 blockread..из файла

А как из памяти запущенной программы тоже самое сделать?


Александр Иванов   (2005-01-31 16:46:00) [16]

В первый раз н понял до конца.

type
Arr:array[1..100] of byte;
PArr:^Arr;
var Data:PArr;
...
Data:=P;


Skier   (2005-01-31 16:43:00) [17]

TMemoryStream.WriteBuffer(...) ?


Александр Иванов   (2005-01-31 16:42:00) [18]

p- указатель
Pointer(Integer(p)+100);


Digitman   (2005-01-31 16:39:00) [19]

?!


Наверх

Титульная страница Поиск, карта сайта Написать письмо