Задание: Сегодня изучаем работу с файлами. Познакомимся со спец-файлами - Ini.
Приступим. Ini-Файлы очень удобны, т.к. состоят из секций и разделов. К ним легко обращаться. Из-за этого сегодняшний урок будем очень коротким! :
Для начала подключаем библиотеку для работы с "ини-файлами": IniFiles (в раздел uses). Процесс записи и чтения вынесем в отдельные функции:
procedure SaveScore;
procedure LoadScore;
Процедуру записи добавляем в обработчик "Button3Click", сразу после вызова функции сортировки:
Sorting;
SaveScore;
Процедуру чтения добавляем в обработчик "FormCreate", перед запуском генератора случайных чисел:
LoadScore;
// Запускаем генератор случайных чисел
randomize;
Пишем функцию записи:
procedure TForm1.SaveScore;
var
i: Integer;
// Определение переменной связанной с "ини-файлом"
Ini: TIniFile;
begin
// Задание файла, в который будем производить запись.
// ExtractFilePath(ParamStr(0)) - Возвращает полный путь и имя файла.
// ParamStr(0) - возвращается имя выполняемого файла данной программы
// с полным путем к нему.
Ini := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'Score.ini');
for i := 1 to 10 do
begin
// Ини-файл имеет вид:
// [Score] - Секция
// Name[1]=Yura - Ключ=Значение
// Функция записи будет выглядеть:
// WriteString(Секция, Ключ, Значение);
// Записываем строку
Ini.WriteString('Score', 'Name[' + IntToStr(i) + ']', Lst[i].Name);
// Записываем число
Ini.WriteInteger('Score', 'Score[' + IntToStr(i) + ']', Lst[i].score);
end;
// Уничтожаем и освобождаем память
Ini.Free;
end;
Теперь функция чтения, попробуйте разобраться сами, без подсказок и комментариев:
procedure TForm1.LoadScore;
var
i: Integer;
Ini: TIniFile;
begin
Ini := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'Score.ini');
for i := 1 to 10 do
begin
Lst[i].Name:=Ini.ReadString('Score', 'Name[' + IntToStr(i) + ']', 'Yura');
Lst[i].score:=Ini.ReadInteger('Score', 'Score[' + IntToStr(i) + ']', 0);
end;
Ini.Free;
end;
Вот. На сегодня это все. Спасибо за внимание! :)
Тексты всех предыдущих уроков и самих исходников
можно скачать с http://mywap-f1.h12.ru
Если у Вас возникли вопросы, идеи, предложения или какие-либо мысли, пишите, не стесняйтесь!