Чтение файла Delphi ini

Я застрял и прошу вашей помощи, чтобы получить решение для чтения моего INI-файла обратно и поместить его в мою форму memo1 с помощью кнопки.

Это в моем текстовом файле:

[Filename]

Work Time=03-10-2018 15:11

Вот часть кода, с которым я работаю.

var
  aWorkTime: string;

procedure TForm1.button2(Sender: TObject):
begin
  Memo1.Lines.Clear;

  IniFile := TIniFile.Create(GetCurrentDir+'\Filename.ini');
try
  aWorkTime := IniFile.ReadString('Filename', 'Work Time', <'none'>);
finally
  IniFile.Free;
end;
end

Я надеюсь, что это достаточно информации, если нет, пожалуйста, скажите мне, что вы от меня не хватает

1 ответ

Решение

Ваше использование GetCurrentDir проблематично. Текущий каталог может измениться, и он не обязательно должен совпадать с каталогом, в котором находится файл .exe. Скорее использовать ExtractFilePath(Application.ExeName)

Кроме того, вместо того, чтобы читать элементы по одному, чтобы прочитать весь файл .ini в заметку, сделайте что-то вроде:

procedure TForm1.Button1Click(Sender: TObject);
begin
  Memo1.Lines.LoadFromFile(ExtractFilePath(Application.ExeName) + 'FileName.ini');
end;

Если вам нужно только рабочее время, то ваш код почти готов:

var
  aWorkTime: string;
  IniFile: TIniFile;
begin  
  Memo1.Lines.Clear;
  IniFile := TIniFile.Create(ExtractFilePath(Application.ExeName) + 'FileName.ini');
  try
    aWorkTime := IniFile.ReadString('Filename', 'Work Time', '<none>');
    Memo1.Lines.Add('Work Time=' + aWorkTime);
  finally
    IniFile.Free;
  end;
end;
Другие вопросы по тегам