[CM]Pirate |
Дата: Среда, 06.03.2013, 15:44 | Сообщение # 1
|
|
Теоретические основы работы с файлами
Смысл урока - работа с файлами с помощью встроенных в SA-MP функций.
Начнем с примера:
fopen(const name[], filemode: mode = io_readwrite);
Функция служит для открытия файла и передачи ссылки на него для дальнейшей работы.
Теперь надо разобраться, что есть что: name[] - имя отрываемого файла. filemode - способ открытия, по умолчанию io_readwrite.
Подробнее о fopen и все что с ними связано:
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[] - имя проверяемого файла включающее в себя и путь до файла.
Подробнее о io_readwrite и все что с ними связано:
io_read - открывает файл с возможностью чтения, если файл не существует то произойдёт краш сервера. io_write - открывает файл и перезаписывает всё его содержимое. io_readwrite - открывает файл с возможностью чтения/записи, если файл не существует, то создаёт его. io_append - открывает файл с возможностью дозаписи файла, если файл не существует, создаёт его.
Примеры работы с файлами
Пример чтения строки из файла:
Код stock ReadOneString(file[],tostring[]) { if(!fexist(file)) return -1; new File:opnfile; opnfile=fopen(file,io_read); fread(opnfile,tostring); fclose(opnfile); return 1; }
Теперь разберем, что есть что в вышеуказанном примере:
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 давая знать что всё прошло успешно.
Пример чтения строки в файл:
Код stock WriteOneString(tofile[],string[]) { new File:opnfile; opnfile=fopen(tofile,io_append); fwrite(opnfile,string); fclose(opnfile); return 1; }
Теперь разберем, что есть что в вышеуказанном примере:
if(!fexist(file)) return -1; - проверяем наличие файла file, если он не существует то прекращаем выполнение функции и возвращаем значение -1.
new File:opnfile; - создаём файловую переменную.
opnfile=fopen(tofile,io_append); - открываем файл с параметром io_append.
fwrite(opnfile,string); - записываем в файл строку string.
fclose(opnfile); - закрываем работу с файлом.
return 1; - возвращаем 1 давая знать что всё прошло успешно.
Урок закончен, в ближайшее время будет урок № 2.
В скайпе и вк сделок не веду, ни под какими логинами не добавляюсь чтобы занять денег \ купить \ продать что либо
Сообщение отредактировал [CM]Pirate - Четверг, 07.03.2013, 13:43 |
|
|
|
Fenix05 |
Дата: Понедельник, 07.11.2016, 13:51 | Сообщение # 2
|
Новичок
Сообщений: 27
Статус: Offline
|
А как получить список имён файлов в папке?
|
|
|
|