Сергей Талипов
Иcпользование API на Delphi 7
1. РАБОТА С INI – ФАЙЛАМИ
Ini-файл – это текстовый файл, в котором информация сгруппирована по секциям, ключам. Данные файлы широко применяются во многих приложениях и в операционной системе Windows для хранения различных программных данных и настроек пользователя. В таком файле можно хранить, например, положение окон программы, дату, время и продолжительность работы программы, пути к разным данным и данным, выбранные в программе настройки пользователя Ниже приведена структура и пример Ini-файла:
Для работы с Ini-файлами применяется дополнительный модуль Delhi «inifiles». Ссылку на данный модуль необходимо прописать в разделе «uses» работающей с Ini-файлами форме программы. Вся работа с Ini-файлами осуществляется через тип «TiniFile» модуля «inifiles». Основные методы данного типа следующие:
Create |
Открытие Ini-файла для чтения или записи |
Free |
Закрытие открытого Ini-файла |
UpdateFile |
Обновляет данные из/в файла на диске |
|
|
SectionExists |
Проверка существования в файле данной секции |
ValueExists |
Проверка существования в файле ключа в данной секции |
ReadSections |
Получение перечня всех секций файла |
EraseSection |
Удаление данной секции со всеми ее ключами |
DeleteKey |
Удаление ключа в данной секции |
ReadSection |
Получение перечня ключей данной секции |
ReadSectionValues |
Получение значений всех ключей (с именами) данной секции |
|
|
ReadString |
Чтение строкового значения из ключа данной секции |
ReadBool |
Чтение логического значения из ключа данной секции |
ReadDate |
Чтение даты из ключа данной секции |
ReadDateTime |
Чтение даты и время из ключа данной секции |
ReadFloat |
Чтение вещественного значения из ключа данной секции |
ReadInteger |
Чтение целого значения из ключа данной секции |
ReadTime |
Чтение времени из ключа данной секции |
|
|
WriteString |
Запись (обновление) строкового значения в ключ данной секции |
WriteBool |
Запись логического значения в ключ данной секции |
WriteDate |
Запись даты в ключ данной секции |
WriteDateTime |
Запись даты и времени в ключ данной секции |
WriteFloat |
Запись вещественного значения в ключ данной секции |
WriteInteger |
Запись целого значения в ключ данной секции |
WriteTime |
Запись времени в ключ данной секции |
Рассмотрим на подробном примере процедуру записи информации в Ini-файл:
procedure TForm1.Button3Click(Sender: TObject);
var t_Ini: TIniFile;
k: integer; s, path_pr, nfile: string; td: tdatetime;
begin
k:=736; s:='Okey'; td:=now;
path_pr:=ExtractFilePath(application.exename) +'tsn.ini';
t_Ini := TIniFile.Create(nfile);
try
with t_Ini do begin
WriteInteger('TSN', 'str1', k);
WriteFloat('TSN', 'str2', 736.123);
WriteString('TSN', 'str3', s);
WriteDate('TSN', 'str4', strtodate('01.02.2012'));
WriteTime('TSN', 'str5', td);
Writebool('TSN', 'str6', true);
end;
except
showmessage('Нет доступа к Ini-файлу !');
end;
t_Ini.Updatefile; t_Ini.Free;
end;
Рассмотрим на примере процедуру считывания ранее сохраненной информации из Ini-файла:
procedure TForm1.Button4Click(Sender: TObject);
var t_Ini: TIniFile;
k: integer; s, path_pr, nfile: string; td: tdatetime;
begin
path_pr:=ExtractFilePath(application.exename) +'tsn.ini';
t_Ini := TIniFile.Create(nfile);
try
with t_Ini do begin
k:=ReadInteger('TSN', 'str1', -1); showmessage(inttostr(k));
s:=ReadString('TSN', 'str3', '-1'); showmessage(s);
td:=ReadDate('TSN', 'str4', strtodate('1.1.2000'));
showmessage(datetostr(td));
showmessage(floattostr(ReadFloat('TSN', 'str2', -1.123)));
showmessage(timetostr(ReadTime('TSN2', 'str5', now)));
showmessage(inttostr(byte(ReadBool('TSN2', 'str6', false))));
end;
except
showmessage('Нет доступа к Ini-файлу !');
end;
t_Ini.Free;
end;
1. РАБОТА С РЕЕСТРОМ WINDOWS
Реестр Windows – это база данных, в которой операционная система Windows и внешние программы сохраняют нужные им данные. Логическая структура реестра напоминает строение Ini-файла, отличие состоит в том, что Ini-файл состоит из разделов (секций) и ключей раздела со значениями, а реестр состоит из разделов, вложенных подразделов (неограниченное число) и ключей (параметров) разделов/подразделов со значениями.
Реестр Windows имеет древовидную структуру, подобную файловой системе, где разделы и подразделы соответствуют каталогам и подкаталогам, а ключи со значениями – именам файлов:
Читать дальше