• Страница 1 из 1
  • 1
Урок по работе с файлами
LiOn4uKДата: Суббота, 15.10.2011, 22:35 | Сообщение # 1
.::Offline::.
Гангстер
Сообщений: 210
[ 94 ]
Награды: 19

Статус отсутствует
Урок 1. (основы)


Итак, пока у меня есть время решил написать урок по работе с файлами с помощью встроенных в SA-MP функций, я не буду углубятся в них, а просто опишу как можно записать/прочитать в/из файла данные

Начнём мы пожалуй с перечисления тех самых функций с которыми мы будим работать

Такт 1. Описание функций:

fopen(const name[], filemode: mode = io_readwrite);
функция служит для открытия файла и передачи ссылки на него для дальнейшей работы
входными параметрами являются:

name[] - имя отрываемого файла, включает и путь до него
filemode - способ открытия, по умолчанию io_readwrite, давайте поподробнее рассмотрим все способы

Code
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[] - имя проверяемого файла включающее в себя и путь до файла

Ну что ж, на этом я думаю пока что стоит закончить, ТК эти функции являются самыми важными для нас.

Такт 2. Примеры

Давайте приведём пример чтения и записи строки в/из файла:

Пример чтения строки из файла:

Code
stock ReadOneString(file[],tostring[])
{
if(!fexist(file)) return -1; /* проверяем наличие файла file, если он не существует то прекращаем выполнение функции и возвращаем значение -1 */

new File:opnfile; // создаём файловую переменную
opnfile=fopen(file,io_read); /* открываем файл file с возможностью чтения и записываем его идентификатор в 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 давая знать что всё прошло успешно
}


Урок 2. (освоение)


В этом уроке мы опишем остальные стандартные функции по работе с файлами

Такт 1. Описание функций

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

Автор: her0


Сообщение отредактировал Dima_Tkach - Суббота, 15.10.2011, 22:35
 
  • Страница 1 из 1
  • 1
Поиск:


Copyright www.SAMP-TEAM.com (c) 2009-2024
Правила использования материалов сайта

При копировании материалов из нашего сайта
ссылка на www.SAMP-TEAM.com обязательна!
Нарушители правил будут строго наказаны!

Хостинг от uCoz   
Для корректного просмотра мы рекомендуем Вам использовать браузер Google Chrome.
Яндекс.Метрика
Яндекс.Метрика