[Урок № 1] Работаем с файлами - Форум Cheat-Master.ru
  • Страница 1 из 1
  • 1
Модератор форума: Phoenixxx_Czar, Getbackthere, [CM]OlegEhtler  
[Урок № 1] Работаем с файлами
[CM]Pirate Дата: Среда, 06.03.2013, 15:44 | Сообщение # 1
Новичок
Статус: Offline
Теоретические основы работы с файлами


  • Смысл урока - работа с файлами с помощью встроенных в 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
    А как получить список имён файлов в папке?
    • Страница 1 из 1
    • 1
    Поиск:
    Статистика Форума