В этом уроке мы научимся правильно производить запись в файл в PAWNO. И так, приступим. Каждая файловая система (инклуды), используют свои функции, методы записью данных в файл, но мы рассмотрим стандартную.
Функции: Открытие файла: fopen(const name[], filemode: mode = io_readwrite); функция выполняет открытие файла и перекидки ссылки на него на будущие операции основными параметрами есть:
name[] - название отрываемого файла, может содержать путь к файлу. filemode - метод открытия, стандартно это io_readwrite, теперь рассмотрим все методы:
io_read - выполняет чтение из файла. Файл обязательно должен существовать по указанному адресу. io_write - выполняет запись в файл, если такого нету - создает новый. io_readwrite - выполняет чтение из файла, если такого нету - создает новый. io_append - выполняет дозапись в файл.
Закрытие файла: fclose(File: handle); Функция выполняет завершение действий, операций с файлом Основными параметрами есть: handle - ссылка полученная из fopen
Удаление файла: fremove(const name[]); Функция выполняет полное удаления файла, но если файл нельзя удалить по каким-то причинам (не существует, недостаточно прав...) удалить, то функция вернет значение false Основными параметрами есть: name[] - название файла, может включать в себя путь к файлу, если он не находится в основной директории.
Запись: fwrite(File: handle, const string[]); Функция выполняет запись структуры массива в файл Основными параметрами есть: handle - ссылка полученная из fopen string[] - массив, который будет записан
Чтение: fread(File: handle, string[], size = sizeof string, bool: pack = false); Функция выполняет чтение построчно текста из файла Основными параметрами есть: handle - ссылка полученная из fopen string[] - массив куда сохранятся считанные данные size - размер считываемых в строках байт pack - запаковка строки
Проверка на существование: fexist(const pattern[]); Функция выполняет проверку на существования файла Основные параметры: pattern[] - имя файла, может содержать в себе путь к файлу
Запись символа: fputchar(File: handle, value, bool: utf8 = true); Функция выполняет запись символов в файл, если все пройдет успешно то вернет true, если нет - false Основные параметры: handle - ссылка полученная из fopen value - символ, который будет записываться в файл utf8 - поддержка utf8 (включена или нет)
Чтение символов: fgetchar(File: handle, value, bool: utf8 = true); Функция выполняет чтения символов из файла Основные параметры: handle - ссылка полученная из fopen value - символ, который будет записываться в файл utf8 - поддержка utf8 (включена или нет)
Запись двоичных данных: fblockwrite(File: handle, const buffer[], size = sizeof buffer); Выполняет запись данных в файл двоичным методом, игнорирует концы строчек и кодировки. Основные параметры: handle - ссылка полученная из fopen const buffer[] - выполняет запись данных в файл size=sizeof buffer - количество ячеек данных для записи
Запись в файл без кодируюищих и завершающих символов: fblockread (handle,buffer[],size=sizeof buffer) Эта функция выполняет чтение данных из файла, без кодирующихи завершающих символов (в двоичном виде) Основные параметры: handle - ссылка полученная из fopen buffer[] - буфер для выполнения сохранения считанных данных
Перемещение по файлу: fseek(handle,position=0,whence=seek_start) Выполняет изменение текущей позиции в файле. Можно перемещаться по файлу. Основные параметры: handle - ссылка полученная из fopen position=0 - координата файлового курсора whence=seek_start - метод, который устанавливает параметры перемещение по файлу
Примеры: Пример чтения строки из файла:
Code
stock ReadString(file[],tostring[]) { if(!fexist(file)) return -1; /* проверяет существование файла, если такого нету, отменяет выполнение функций и вернем значение -1 */ new File:opnfile; // создаем файловую переменную opnfile=fopen(file,io_read); /* открывает файл для чтения и записи его идентификатора в opnfile */ fread(opnfile,tostring); // читает первую строчку файла и записывает её в tostring fclose(opnfile); // закрывает работу с файлом return 1; // возвращает 1 и дает знать, что операция завершена успешно }
Пример записи строчки в файл:
Code
stock WriteOneString(tofile[],string[]) { new File:opnfile; // создает файловую переменную opnfile=fopen(tofile,io_append); /* Открывает файл с методом исполнения io_append, в этой ситуации он лучше всего нам подходит */ fwrite(opnfile,string); // записывает в файл строчку string fclose(opnfile);// закрывает действие с файлом return 1; // возвращаем 1, и сообщает что все прошло успешно }