Исходники Delphi

Добро пожаловать на наш портал

На нашем сайте ежедневно публикуются десятки качественных и свежих материалов, которые Вы можете скачать абсолютно бесплатно. Рекомендуем Вам добавить Наш сайт в закладки, а также подписаться на RSS ленту, чтобы не пропускать интересных новостей.
Стартовая Избранное Главная Контакты Карта сайта

Меню

Не доступно

Не доступно

Опрос

Оцените мой сайт

Проголосовало: 118
Другие опросы

Главная » 2013 » Март » 15 » Урок IniFiles в делфи
01:59
Урок IniFiles в делфи
Работа с ini- файлами.

Структура ini-файла очень проста: весь файл поделён на секции. В секциях содержатся ключи и эти ключи хранят значения. Вот пример открытого в блокноте ini-файла:

Код
[Form properties]
Width=250
Height=300
Left=15
Top=30
[Application properties]
Dir=C:\
Date=28.07.02

В этом ини-файле, как мы видим, 2 секции: Form properties и Application properties. В каждой из этих секций есть ключи, содержащие числа, строковые выражения, дату. Запись в файл осуществляется путём указания секции ини-файла, названия ключа и указания самого значения. Ниже я опишу способы использования ини-файла на Borland Delphi.
Для работы с ини-файлами в Delphi существует модуль IniFiles. В нём описан нужный нам класс TIniFile.
1. Включите Delphi и создайте новый проект.
2. Допишите в Uses новый модуль IniFiles.
3. Создайте глобальную переменную класса TIniFile.

Код
var  
  Form1: TForm1;
  IniFile: TIniFile;

4. При создании формы надо инициализировать переменную IniFile:
Код
procedure TForm1.FormCreate(Sender: TObject);
begin
  IniFile:=TIniFile.Create('C:\Program files\MyApplication\MyIni.ini');
end;

Инициализация проходит с участием дополнительного параметра типа string. Это имя файла. Если имя введено не полностью, а, например, так: 'MyIni.ini', то файл создастся при записи в папке Windows. Я же рекомендую создавать файл в папке с программой (её можно узнать так: ExtractFilePath(Application.ExeName)).
5. Как осуществить запись в файл? Для записи в ини-файл есть несколько процедур у класса TIniFile - смотря что надо записать.

Процедура записи строки:

WriteString(const Section, Ident, Value: string);
Процедура записи цифры:
WriteInteger(const Section, Ident: string; Value: Longint);
Процедура записи булевого выражения:
WriteBool(const Section, Ident: string; Value: Boolean);
Запись даты:
WriteDate(const Section, Name: string; Value: TDateTime);
Запись время:
WriteTime(const Section, Name: string; Value: TDateTime);
Запись даты и время вместе:
WriteDateTime(const Section, Name: string; Value: TDateTime);
Запись не целого численного значения:
WriteFloat(const Section, Name: string; Value: Double);
Запись потока:
WriteBinaryStream(const Section, Name: string;Value: TStream);
Во всех этих функциях обязательно указывать секцию (Section), имя ключа (Name) и записываемое значение.
Для наглядности вы можете поместить на форму кнопку и по её нажатию можете прописать следующее:
Код

procedure TForm1.Button2Click(Sender: TObject);
begin
  IniFile.WriteString('Form info','Form caption',Caption);
  IniFile.WriteInteger('Form info','Left',Left);
  IniFile.WriteInteger('Form info','Top',Top);
  IniFile.WriteInteger('Form info','Width',Width);
  IniFile.WriteInteger('Form info','Height',Height);
  IniFile.WriteTime('Other','Write time',Time);
end;

По выполнению этого кода программа создаст (если ещё не создан) файл в указанном при процедуре Create месте и запишет в него примерно следующее:
Код
[Form info]
Form caption=Form1
Left=192
Top=107
Width=544
Height=375
[Other]
Write time=23:13:55

6. Процедура чтения из ини-файла осуществляется похожим способом. Для чтения существуют функции:

ReadString(const Section, Ident, Default: string): string;
ReadInteger(const Section, Ident: string; Default: Longint): Longint;
ReadBool(const Section, Ident: string; Default: Boolean): Boolean;
ReadBinaryStream(const Section, Name: string; Value: TStream): Integer;
ReadDate(const Section, Name: string; Default: TDateTime): TDateTime;
ReadDateTime(const Section, Name: string; Default: TDateTime): TDateTime;
ReadFloat(const Section, Name: string; Default: Double): Double;
ReadTime(const Section, Name: string; Default: TDateTime): TDateTime;
Каждая функция возвращает прочтённое из файла значение. Если по каким-либо причинам прочтение не удалось, то функция возвращает значение, указанное в параметре самой функции как Default.

Например, для прочтения из нашего ини-файла значения Form caption надо написать следующее:
Код

Edit1.Text:=IniFile.ReadString('Form info',
  'Form caption','Ошибка при чтении!');

В этом примере тексту помещённого на форму Edit-а присваивается прочтённое из файла значение. В нашем случае тексту Edit-а будет присвоено значение «Form1». Если чтение не удастся, то тексту Edit-а будет присвоено значение «Ошибка при чтении».
Другие процедуры и функции для работы с ини-файлами:
Проверка, существует ли секция:

function SectionExists(const Section: string): Boolean;
Прочтение всей секции:
procedure ReadSection(const Section: string; Strings: TStrings);
Прочтение всего файла (все секции записываются в Strings):
procedure ReadSections(Strings: TStrings);
Прочтение всех значений в заданной секции:
procedure ReadSectionValues(const Section: string; Strings: TStrings);
Удалить заданную секцию со всеми её значениями:
procedure EraseSection(const Section: string);
Удаление определённого ключа (и его значения) в секции:
procedure DeleteKey(const Section, Ident: String);
Проверка, существует ли заданный ключ в указанной секции:
function ValueExists(const Section, Ident: string): Boolean;

Скачать статью тожно тут
Категория: Ini/Dll/ выгрузка и загрузка | Просмотров: 2802 | Добавил: Reif | Рейтинг: 0.0/0
Всего комментариев: 0


Название блока

Здесь html код

Название блока

Здесь html код

Название блока

Здесь html код

Название блока

Здесь html код

 
Исходники Delphi
Сделать бесплатный сайт с uCoz |