Как хранить настройки для программы. Работа с 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 разделяются знаком равенства (=). Например:
Обработка файлов 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
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.