![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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]?!