Сергей Талипов
Иcпользование API на Delphi 7
ЛЕКЦИЯ 1
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;
ЛЕКЦИЯ 2
1. РАБОТА С РЕЕСТРОМ WINDOWS
Реестр Windows это база данных, в которой операционная система Windows и внешние программы сохраняют нужные им данные. Логическая структура реестра напоминает строение Ini-файла, отличие состоит в том, что Ini-файл состоит из разделов (секций) и ключей раздела со значениями, а реестр состоит из разделов, вложенных подразделов (неограниченное число) и ключей (параметров) разделов/подразделов со значениями.