Всё о сервере, форум!
Основы программирования
ИНФОРМАЦИОННО-РАЗВЛЕКАТЕЛЬНЫЙ ПОРТАЛ

PrR[ Проект SAMP - Romashka [0.3e] ™18+™

Pawn :: Основы скриптинга
Чтение и запись файлов с помощью mxINI

include – mxINI.

На основе этого инклуда в основном делают регистрацию на сервере.

Файл mxINI.inc нужно скопировать в папку include в директории с редактором Pawno.
В начале вашего скрипта обязательно нужно объявить этот инклуд, также как объявляется инклуд  a_samp.
Итак, приступим к разбору основных функций mxINI:

ini_createFile(“filename.ini”); //Создает файл с именем filename.ini в папке scriptfiles.
ini_openFile(“filename.ini”); //Открывает файл
ini_closeFile(ID открытого файла);
//Закрывает файл

Запись данных в файл:

ini_setString(ID файла, "имя ключа", "текст"); // Эта функция записывает текст в ключ.
ini_setInteger(ID файла, "имя ключа", 123456 ); // Эта функция записывает целое число в ключ.
ini_setFloat(ID файла, "имя ключа", 3.1416 );
// Эта функция записывает десятичное число в ключ.

Чтение данных из файла

ini_getString(ID файла, "имя ключа", <имя переменной>); // Эта функция записывает текст в переменную из файла.
ini_getInteger(ID файла, "имя ключа", <имя переменной>); // Эта функция записывает целое число в
переменную из файла.

ini_getFloat(ID файла, "имя ключа", <имя переменной>);
// Эта функция записывает десятичное число в переменную из файла.

Запись в файл

Запишем данные игрока: имя, деньги и количество здоровья.
Сначала создаем 2 переменные, где у нас будут храниться имя игрока и отформатированное сообщение.

new string[255], PlayerName[32];
GetPlayerName(playerid,PlayerName,32);
format(string,64,”%s.ini”,PlayerName);
new iniFile = ini_createFile(string);


            После переменных мы узнаем имя игрока функцией GetPlayerName. Дальше форматируем  строку, как будет называться файл, в который будет производиться запись. В данном случае файл будет называться по имени игрока. Дальше создаем переменную IniFile, которая будет хранить handle файла, по которому мы будем обращаться к файлу. Handle файла возвращают функции  открытия и создания файла, как показано на 4 (строке) на примере функции создания файла.

             Перед тем как записать количество денег и здоровья игрока, нужно сначала их узнать:

new money = GetPlayerMoney(playerid);
new Float:health = GetPlayerHealth(playerid);


               Теперь пишем проверку, если файл выдаст ошибку, открыть файл снова.

if(iniFile < 0)
iniFile = ini_openFile(string);


             Дальше записываем данные в файл и закрываем его:

ini_setString(iniFile, "Name", PlayerName); //Записываем имя игрока
ini_setInteger(iniFile, "Money", money); //Записываем количество денег
ini_setFloat(iniFile, "Health", health); //Записываем количество здоровья
ini_closeFile(iniFile);
//Закрываем файл

              Вот так производится запись данных в файл.
              Запись в файле будет выглядеть примерно следующим  образом:

Name = Player
Money = 1000
Health = 100.0


Чтение из файла

Чтение из файла ничем не сложнее записи, все аналогично.
Только тут не нужно проверок, условий:  if(iniFile < 0), и в переменной iniFile мы не создаем, а уже открываем созданный нами файл. Весь код будет выглядеть следующим образом:

new string[255], PlayerName[32];
new Float:health, money;
GetPlayerName(playerid,PlayerName,32);
format(string,64,”%s.ini”,PlayerName);
new iniFile = ini_openFile(string); //Открываем файл
ini_getString(iniFile, "Name", PlayerName); //Узнаем имя игрока и записываем его в переменную
ini_getInteger(iniFile, "Money", money); // Узнаем количество денег и записываем в переменную
ini_getFloat(iniFile, "Health", health); // Узнаем количество здоровья и записываем в переменную
ini_closeFile(iniFile); //Закрываем файл
GivePlayerMoney(playerid,money);
SetPlayerHealth(playerid,health);




Логин: Пароль:
Забыли пароль?Регистрация
При копировании материала с сайта активная ссылка обязательна!
Сайт управляется SiNG cms © 2010-2015