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

Как хранить настройки для программы. Работа с INI-файлами

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

Как хранить настройки для программы. Работа с INI-файлами

Разговор двух украинских программистов.
- Слышь Микола, как москали КД-ПЗУ называют?
- Как?
- CD-ROM!
- Поубывал бы.


var
  IniFile: TIniFile;

  //конкретные переменные - мои - храню их в инишке
  IniPortItem: integer;
  IniRTSChecked: boolean;
const
  //значения по умолчанию
  DefPortItem = 1;
  DefRTSChecked = false;

procedure ReadIni;
var
  IniPath: string;
  FileName: string;
begin
  GetDir(0,IniPath);
  FileName:=IniPath+'\muk.ini';
  IniFile:=TIniFile.Create(FileName);
  IniPortItem:=IniFile.ReadInteger('Port','Number',DefPortItem);
  IniRTSChecked:=IniFile.ReadBool('Port','RTS/CTS',DefRTSChecked);
  IniFile.Free;
end;

procedure SaveIni;
var
  IniPath: string;
  FileName: string;
begin
  GetDir(0,IniPath);
  FileName:=IniPath+'\muk.ini';
  IniFile:=TIniFile.Create(FileName);
  IniFile.WriteInteger('Port','Number',IniPortItem);
  IniFile.WriteBool('Port','RTS/CTS',IniRTSChecked);
  IniFile.Free;
end;

Перевод контента на русский язык:

Программа Delphi для работы с файлами INI!

Код, который вы предоставили, является хорошим стартом, но я хотел бы предложить некоторые улучшения и рекомендации.

Структура файла INI До того как мы начнем кодировать, давайте определим структуру файла INI. Файл INI состоит из разделов (также называемых группами) и пар ключ-значение. Каждый раздел начинается с символа [ , за которым следует имя раздела, и заканчивается символом ]. Пairs key-value разделяются знаком равенства (=). Например:

[Port]
Number=1
RTS/CTS=False

[Radios]
Frequency=100.5
Power=10

Обработка файлов INI Ваш код использует компонент TIniFile для чтения и записи файлов INI. Это хороший подход, так как он обертывает сложность работы с файлами INI.

Рекомендации и улучшения 1. Обработка ошибок: при чтении или записи файла INI необходимо проверять ошибки. Добавьте код обработки ошибок, чтобы ваш программный продукт мог восстанавливаться от потенциальных проблем. 2. Путь к файлу INI: вместо жесткого кодирования пути к файлу INI в процедурах ReadIni и SaveIni, рассмотрите использование параметра конфигурации или константы для хранения пути. Это сделает более простым изменение пути к файлу INI, если это необходимо. 3. Имя раздела и ключа: используйте согласованные названия для разделов и ключей в файлах INI. Например, вы можете использовать PascalCase для имен разделов (например, PortSettings) и camelCase для имен ключей (например, portNumber). 4. Организация кода: рассмотрите разделение кода на различные модули или единицы в зависимости от их функциональности. Это сделает более простым поддерживать и отладывать ваш программный продукт. 5. Безопасность типов: в Delphi рекомендуется использовать безопасные переменные типа и параметры функций. Например, вместо использования integer и boolean как типов переменных, рассмотрите использование более конкретных типов, таких как Integer и Boolean.

Улучшения кода Вот некоторые улучшения кода:

- procedure ReadIni;
+ procedure ReadPortSettings;
  var
    IniPath: string;
    FileName: string;
  begin
    GetDir(0, IniPath);
    FileName := IniPath + '\portsettings.ini';
    try
      IniFile := TIniFile.Create(FileName);
      IniPortItem := IniFile.ReadInteger('PortSettings', 'PortNumber', DefPortItem);
      IniRTSChecked := IniFile.ReadBool('PortSettings', 'RTS/CTS', DefRTSChecked);
    except
      on E: Exception do
         // обработка ошибки здесь
    finally
      IniFile.Free;
    end;
  end;

- procedure SaveIni;
+ procedure SavePortSettings;
  var
    IniPath: string;
    FileName: string;
  begin
    GetDir(0, IniPath);
    FileName := IniPath + '\portsettings.ini';
    try
      IniFile := TIniFile.Create(FileName);
      IniFile.WriteInteger('PortSettings', 'PortNumber', IniPortItem);
      IniFile.WriteBool('PortSettings', 'RTS/CTS', IniRTSChecked);
    except
      on E: Exception do
         // обработка ошибки здесь
    finally
      IniFile.Free;
    end;
  end;

В этих улучшениях включены:

  • Переименование процедур для более описательного именования, соответствующего PascalCase.
  • Добавление блоков try-except-finally для обеспечения корректной обработки ошибок при чтении или записи файлов INI.
  • Использование более конкретных типов для переменных и параметров функций.

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

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


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

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




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


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


реклама


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

Время компиляции файла: 2024-08-19 13:29:56
2024-11-13 08:24:50/0.011867046356201/0