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

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

Запись/чтение массива типа Recored в/из файла через TFileStream [D6, Win2k, WinXP]


Fostr ©   (2005-11-11 18:18:00) 

Господа! Вопрос такой: Нажимаем кнопку и данные из TListBox-а пишутся в файл через TFileStream. Эти данные - есть массив из 6 чисел типа "запись". Вот код:

procedureTForm1.Button3Click(Sender: TObject);
var
F: TFileStream;
ListOfFiles: FileList;
I: Integer;

begin
 F:=TFileStream.Create('Lst.dat',fmCreate);
ForI:=0 toListBox1.Count-1 do
  begin
   ListOfFiles.List[I]:= ListBox1.Items[I];
  end;
F.Write(ListOfFiles,SizeOf(ListOfFiles.List));
F.Free;
end;

Нажимая вторую кнопочку я хочу эти данные из файла загрузить обратно в TListBox:

procedureTForm1.Button4Click(Sender: TObject);
var
F: TFileStream;
ListOfFiles: FileList;
I: Integer;

beginF:=TFileStream.Create('Lst.dat',fmOpenRead);
F.Read(ListOfFiles,SizeOf(ListOfFiles.List));
F.Free;

ForI:=0 to5 do
    begin
      ListBox1.Items.Strings[I]:=ListOfFiles.List[I];
    end;
end;

Пока у меня ЯВНО указан размер массива типа запись

Type
FileList = Record
List: array  [0..5] of String[12];    
end;

ВСЕ ЧУДНЕНЬКО РАБОТАЕТ. Но стоит только массив сделать динамическим, начинают выпадать ошибки и в файл пишется черт знает что (НЕСМОТРЯ НА ТО, ЧТО Я ОБЪЯВЛЯЮ ЕГО ДЛИНУ В ПРОЦЕССЕ ВЫПОЛНЕНИЯ ПРОГРАММЫ).

Пршу помощи в решении этой загадки!


begin...end   (2005-11-11 20:33:00) [1]

> Fostr   (11.11.05 18:18)

Переменная динамического массива представляет собой указатель на блок памяти, в котором расположены элементы массива. Дело в этом.


Fostr   (2005-11-11 20:29:00) [2]

List: array of String[12]
( какая будет разница в результате) заранее спасибо


SPV   (2005-11-11 18:49:00) [3]

Массив какой
 List: array of String;
или
 List: array of String[12];


Наверх

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