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

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

считать байты в структуру [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));


Наверх

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