Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Разбираемся с чтением конфигов INI в Delphi: решение проблемы неожиданных значений

Delphi , Файловая система , INI файлы

При работе с файлами конфигурации INI в среде разработки Delphi может возникнуть ситуация, когда при попытке прочитать значение из файла INI вместо ожидаемого результата возвращается заданное по умолчанию значение. В данной статье мы рассмотрим типичную проблему и найдем решение, которое позволит корректно работать с конфигами INI.

Описание проблемы

Разработчик столкнулся с проблемой при попытке чтения значения из файла конфигурации INI. В коде процедуры для чтения используется компонент TIniFile, но вместо ожидаемого логина пользователя (в данном случае, 'root') возвращается строка 'Algo anda mal...', которая указывает на ошибку.

Файл конфигурации INI имеет следующий вид:

[Database]
User=root
Pssword=lalalala
Server=localhost
Name=Prueba

Код процедуры для чтения выглядит так:

procedure testManejoIniFile;
var
  iniFile: TIniFile;
  user: String;
begin
  {Открываем файл INI}
  iniFile := TIniFile.Create('config.ini');
  try
    user := iniFile.ReadString('Database', 'User', 'Algo anda mal...');
    WriteLn(user);
  finally
    iniFile.Free;
  end;
end;

Клиентская программа, вызывающая процедуру, имеет следующий вид:

WriteLn('El usuario para la base de datos es:');
testManejoIniFile();
ReadLn;

При выполнении этой программы в консоли отображается следующее сообщение:

El usuario para la base de datos es:
Algo anda mal...

Поиск решения

Возможная причина проблемы заключается в том, что TIniFile.Create по умолчанию ищет файл INI в директории Windows. Если файл конфигурации находится не там, необходимо указать полный путь к файлу.

Исправленный код процедуры:

procedure testManejoIniFile;
var
  iniFile: TIniFile;
  user: String;
  Path: string;
begin
  {Получаем путь к каталогу приложения}
  Path := ExtractFilePath(ParamStr(0)); // Или Application.ExeName
  {Открываем файл INI, указав полный путь}
  iniFile := TIniFile.Create(Path + 'config.ini');
  try
    user := iniFile.ReadString('Database', 'User', 'Algo anda mal...');
    WriteLn(user);
  finally
    iniFile.Free;
  end;
end;

Таким образом, после указания полного пути к файлу конфигурации INI проблема с чтением значений должна быть решена.

Заключение

При работе с компонентом TIniFile важно помнить о необходимости корректного указания пути к файлу конфигурации. В противном случае, вместо содержимого файла будет возвращено значение по умолчанию, указанное в методе ReadString. Следуя рекомендациям из этой статьи, разработчики смогут избежать подобных ошибок и обеспечить корректную работу с INI-файлами в своих проектах на Delphi.

Пример кода на Object Pascal (Delphi) демонстрирует, как важно обращать внимание на детали при работе с файловой системой.

Создано по материалам из источника по ссылке.

В статье рассматривается проблема чтения конфигурационных данных из INI-файла в среде разработки Delphi и предлагается решение, связанное с правильным указанием пути к файлу.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: INI файлы ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-05-02 06:55:57/0.004709005355835/0