Перейти к содержанию
Fire Monkey от А до Я
  • 0

Аналог WriteLn в TFile?


Hevard

Вопрос

Доброго дня!

Есть динамический массив, который надо выгрузить в файл. Не могу понять, каким методом.

Под Win делал так:

...

   AssignFile(IndexFile, 'DB\Index.tmp');
   Rewrite(IndexFile);

...

 (в динамическом цикле)

  // Запись в файл

    Writeln(IndexFile,IntToStr(I)+', '          // номер по порядку
                     +IntToStr(QNum)+', '          // номер вопроса
                     +IntToStr(URes)+', '            // ответ
                     +IntToStr(RAns));               // правильный ответ
   //  Запись массива

   IndexData[I,1] := I;                 //  I строка, 1 столбец - номер по порядку
   IndexData[I,2] := QNum;       //  I строка, 2 столбец - номер вопроса
   IndexData[I,3] := URes;         //  I строка, 3 столбец - ответ
   IndexData[I,4] := RAns;         //  I строка, 4 столбец - правильный ответ
   end;
   CloseFile(IndexFile);

Параллельно возник ещё вопрос: А закрывать файл после записи не надо теперь?

Не нашёл ничего похожего на CloseFile.

Ссылка на комментарий

Рекомендуемые сообщения

  • 0

Для работы с файлами в современных версиях Delphi я рекомендую использовать классы TStringList или TFileStream. TStringList подходит для работы с текстовыми файлами, а TFileStream для работы с двоичными файлами.

Вот пример кода, как выгрузить динамический массив в текстовый файл, используя TStringList:

uses
  Classes, SysUtils;

var
  IndexData: array of array of Integer;
  IndexFile: TStringList;
  I, QNum, URes, RAns: Integer;
begin
  SetLength(IndexData, 5, 4); // Задаем размер массива
  IndexFile := TStringList.Create;
  try
    for I := 0 to High(IndexData) do
    begin
      // Записываем данные в массив (для примера, используем случайные значения)
      IndexData[I, 0] := I;
      IndexData[I, 1] := QNum;
      IndexData[I, 2] := URes;
      IndexData[I, 3] := RAns;
      
      // Добавляем данные из массива в строку IndexFile
      IndexFile.Add(IntToStr(IndexData[I, 0]) + ', ' +
                    IntToStr(IndexData[I, 1]) + ', ' +
                    IntToStr(IndexData[I, 2]) + ', ' +
                    IntToStr(IndexData[I, 3]));
    end;

    // Сохраняем данные в файл
    IndexFile.SaveToFile('DB\Index.tmp');
  finally
    IndexFile.Free;
  end;
end.

Когда вы используете класс TStringList, вам не нужно заботиться о закрытии файла. TStringList.SaveToFile автоматически закрывает файл после записи. Метод TStringList.Free очищает память, выделенную для объекта.

Ссылка на комментарий

Присоединяйтесь к обсуждению

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

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...