Главная | Комментарии | О проекте
Чтение RSS
Суперсайт
Главная Контакты Карта сайта Добавить в избранное
  • Кто OnLine

    Всего на сайте: 7
    Гостей: 2
    Пользователи: - отсутствуют
    Роботы: Yahoo Bot, Yandex Bot, Yandex Bot, Yandex Bot, crawl Bot

    Опрос пользователей

    Для какого мода Вы пишите плагины?

    • Популярное

    Рекомендуем

    • AMX Mod X
    • up.org.ua

    Наши друзья


  • Автор: Admin Дата: 5-03-2012, 14:10 Просмотров: 6181

    fgets Функция считывает одну строку из файла

    Записывать строку в файл с помощью функции fputs вы наверняка уже умеете, но мы так же понимаем что просто хранение данных это бесполезная трата ресурсов в наше время, данными нужно пользоваться, что бы их хранение не было бесполезным, что бы воспользоваться данными из файла, можно его построчно считывать с помощью функции fgets

    Инфо из file.inc:
    //Reads a line from a text file -- includes newline!
    native fgets(file, buffer[], maxlength);


    Синтаксис:
    fgets(file, buffer[], maxlength)

    • file - id открытого файла
    • buffer[] - Массив куда будет помещена полученная информация
    • maxlength - Максимальная длина массива


    Тип функции:
    Native

    Пример:
    /* Plugin generated by AMXX-Studio */

    #include <amxmodx>
    #include <amxmisc>

    #define PLUGIN "[file.inc] fgets"
    #define VERSION "1.0"
    #define AUTHOR "Admin"


    public plugin_init() {
        register_plugin(PLUGIN, VERSION, AUTHOR)

        if( file_exists("addons/amxmodx/configs/test.txt") )
        {
            delete_file("addons/amxmodx/configs/test.txt")
        }
        
        new fileid = fopen("addons/amxmodx/configs/test.txt","at")

        
        if(fileid){
        
            new text[16] = {"Data for record"}
            fputs(fileid,text)
        
            
        }
        fclose(fileid)
        
        fileid = fopen("addons/amxmodx/configs/test.txt","rt")
        if(fileid){
            new text[512]
            
            fgets(fileid,text,charsmax(text))
            server_print("^nRead text:(%s)^n",text)
            
        }
        fclose(fileid)

    }


    Описание:
    Первая часть кода взята из описания функции по записи строки в файл, в рамках этого материале нас интересует только кусок отвечающий за получение строки из файла. Для этого так же необходимо открыть файл, создать массив для получения информации new text[512], и записать в этот массив полученную сроку fgets(fileid,text,charsmax(text)), и уже потом для примера вывести ее в консоль сервера. Не забыв после этого закрыть файл.
    Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
    Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
    fgets Функция считывает одну строку из файла
    артист

    --
    ICQ: --
    Публикаций: 0
    Комментариев: 0
    Репутация: -  0  +

    Всегда было интересно, если функция считывает одну строку, как она понимает что нужно переместиться ниже вот в таком коде:

    public read_files()
    {
        if(file_exists("addons/amxmodx/configs/ddd.ini"))
        {
            new buffer[45], num, file = fopen("addons/amxmodx/configs/ddd.ini", "rt")

            while(file && !feof(file))
            {
                fgets(file, buffer, charsmax(buffer))
                server_print("idfile %i str %i %s", file, ++num, buffer)
            }
            if(file) fclose(file)
        }
        else log_amx("No load file")
    }


    Или она сама запоминает номер строки, и при повторном вызове одного и того же файла, читает следующую строку?
    Admin

    30.07.2011
    ICQ: 980500
    Публикаций: 507
    Комментариев: 333
    Репутация: -  56  +

    артист, могу ошибаться, но мне кажется что работает это за счет указателя конца строки (символа переноса строки или как-то так) в файле.
    Т.е. ты как человек видишь же что строка перенесена - так же и компы видят, только не образы, а спецсиволы которые не отображаются.
    ( в терминах 100% ошибся, но смысл думаю понятен)

    Вот скриншот в notepud++ где виден перенос строки cr lf между первыми двумя предложениями этого комментария http://amxxmodx.ru/uploads/crlf.jpg
    --------------------

    Информация

    Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
Наверх

Реклама