![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
считать байты в структуру [D7, XP]
mem © (2010-11-22 21:06:00)Всем привет.
Type
TMyRec = record
....
end;
var
p: PChar;
MyArray: array [0..254] of TMyRec;
begin
GetMem(p, SizeOf(TMyRec) * 255);
with TFileStream.create('c:\myText.txt', fmOpenReadWrite) do
try
Seek(12134, soFromBeginning); //- тут лежит 255 записей типа TMyRec
read(p^, SizeOf(TMyRec) * 255);
//как теперь заполнить массив MyArray считанными значениями?
mem (2010-11-23 11:30:00) [1]а как быть с отображенным в память файлом? Как тогда заполнять?
mem (2010-11-23 11:27:00) [2]всем большое спасибо!
Anatoly Podgoretsky (2010-11-23 09:57:00) [3]> mem (22.11.2010 21:06:00) [0]
Либо P либо MyArray лишнее.
Юрий Зотов (2010-11-22 23:41:00) [4]1. Массив статический, поэтому GetMem не нужно.
2. После
read(@MyArray[0], SizeOf(TMyRec) * 255);
массив уже заполнен считанными значениями.
3. Если среди полей TMyRec есть длинные строки или иные указатели, то весь этот код бесполезен.
Сергей М. (2010-11-22 23:41:00) [5]
> read(p^,
А что, читать из стрима сразу в массив тебе что-то мешает ?
Read Buffer(MyArray, SizeOf(MyArray));