Сергей Талипов
И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-файл состоит из разделов (секций) и ключей раздела со значениями, а реестр состоит из разделов, вложенных подразделов (неограниченное число) и ключей (параметров) разделов/подразделов со значениями.
Реестр Windows имеет древовидную структуру, подобную файловой системе, где разделы и подразделы соответствуют каталогам и подкаталогам, а ключи со значениями – именам файлов:
Рис. 1
Любая программа может сохранять свои данные или в реестре Windows или в Ini-файлах. Достоинства и недостатки использования реестра и Ini-файлов следующие:
Параметр
Использование реестра Windows
Использование Ini-файлов
Перенос данных с компьютера на компьютер
Трудность переноса данных с использованием экспорта/импорта ветвей реестра через программу редактора реестра («regedit»)
Легкость переноса данных путем простого копирования Ini-файла с одного компьютера на другой
Модификация данных
Через функции прикладной программы или программу редактора реестра
Через функции прикладной программы или корректировки в обычном текстовом редакторе
Привязка к конкретному пользователю Windows
Автоматически на уровне операционной системы через корневой раздел «HKEY_CURRENT_USER»
Трудно через функции прикладной программы
Привязка к конкретному компьютеру
Автоматически на уровне операционной системы через корневой раздел «HKEY_LOCAL_MACHINE»
Трудно через функции прикладной программы
Таблица 1
Реестр состоит из шести корневых разделов, два из которых представляют наибольший интерес: раздел «HKEY_LOCAL_MACHINE» предназначен для хранения данных, доступных всем пользователям Windows, а раздел «HKEY_CURRENT_USER» хранит данные, доступные только для текущего пользователя Windows. Другие корневые разделы обычно используются только операционной системой и некоторыми системными программами.
Язык программирования Delphi 5 позволяет производить с реестром Windows лю
Bu ve 399 TRY karşılığında 2 kitap daha