Сохранение массива TStringList

Ответить
Аватара пользователя
XCodeR

Сохранение массива TStringList

Сообщение XCodeR »

Можно ли сохранить 2-3-мерный TStringList массив в файл? и потом обратно считать его в программу?
Аватара пользователя
XCodeR

Re: Сохранение массива TStringList

Сообщение XCodeR »

Забыл написать - реализации нужна в C++ Builder или Delphi
Аватара пользователя
Savant

Re: Сохранение массива TStringList

Сообщение Savant »

Xcode

На выбор есть 2 варианта:

1. Быстро, но в несколько файлов; кол-во файлов = произведению размерностей массива. Используем метод SaveToFile в цикле, например так:



Код:

Код: Выделить всё

var
  i, k, j: Integer;
  fn: String;
begin
......
  // Сохранение
  for i := 0 to i_max do
    for k := 0 to k_max do
      for j := 0 to j_max do begin
        fn := Format('%2x%2x%2x',[i,k,j]) + '.dat';
        StrListArray[i, k, j].SaveToFile(fn);
      end;
.....
  // Загрузка
  for i := 0 to i_max do
    for k := 0 to k_max do
      for j := 0 to j_max do begin
        fn := Format('%2x%2x%2x',[i,k,j]) + '.dat';
        StrListArray[i, k, j].LoadFromFile(fn);
      end;
.....

2. Медленнее, но в 1 файл. Тут по-простому: сначала пишем в файл размер отдельного TStringList (WriteLn(F, StrListArray[i, k, j].Count)), а потом сам TStringList построчно (WriteLn(F, StrListArray[i, k, j][z]); в четырех вложенных циклах все реализуется Изображение.
Ответить

Вернуться в «Программирование и базы данных»