На нашем сайте вы найдете свежие новости мира Grand Theft Auto, а также все необходимое для игры в San Andreas Multiplayer
        515
        прос

        Введение:
        В последнее время, я искал разные файловые системы, некоторые из них были медленные, некоторые неудобные, поэтому я решил написать свою.

        Как использовать?:
        Для начала, скачайте файл с инклудом, поместите его в папку includes(pawno/includes).
        Затем напишите это в самый верх вашего скрипта (после инклуда a_samp):
        1
        2
        3
        4
        #include <mfiles>
        Примерно вот так это должно выглядеть:
        1
        2
        3
        4
        #include <a_samp>
        #include <mfiles>
        // Другие инклуды

        Настройки:
        Я создал несколько дефайнов в инклуда, я советую вам оставить всё как есть, но если вам очень нужно, то можете настроить их под себя.
        1
        2
        3
        4
        5
        6
        7
        8
        #define MAX_FILE_READ_STRING            255
        // Число ячеек, которые будут использоваться при чтении / записи.
        #define MAX_KEY_LEN                     32
        // Максимальная длинна ключа.
        #define MAX_VAL_LEN                     128
        // Максимальная длинна значения.
        #define KEY_IGNORECASE                  false

        Версия:
        mFiles v1.0 - Первый релиз

        Скачать:
        Mediafire: http://www.mediafire.com/?u4xcoh45wkrbqh5

        Примеры:

        ЗАПИСЬ:
        Запись происходит очень просто, мы открываем файл, записываем в него, затем закрываем файл.
        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
        17
        18
        19
        new file[] = "settings.ini";
         
        // Проверяем существует ли файл, если нет - создаём его.
        if(!File_Exists(file)) File_Create(file);
         
        // Начинаем писать в файл.
        File_Write(file);
         
        // Пишем...
        File_WriteString("hostname""gamemode_0");
        File_WriteInt("maxplayers", 50);
        File_WriteFloat("gravity", 0.08);
        File_WriteBool("allow_connect"true);
        File_WriteHex("spawn_color", 0xFFFFFF);
        File_WriteBin("binary_info", 0b1110110);
         
        // Заканчиваем писать, сохраняем и закрываем.
        File_WriteFinish(file);

        ЧТЕНИЕ:
        Чтение это тоже самое, только мы открываем файл, читаем из него и закрываем файл.
        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
        17
        18
        new hostname[11], maxplayers, Float:gravity, bool:allow_connect, file[] = "settings.ini";
         
        // Проверяем создан ли файл.
        if(File_Exists(file)) {
         
            // Открываем файл.
            File_Open(file);
             
            // Читаем...
            File_GetStringEx("hostname", hostname);
            maxplayers = File_GetInt("maxplayers");
            gravity = File_GetFloat("gravity");
            allow_connect = File_GetBool("allow_connect");
             
            // Закрываем файл.
            File_Close();
        }

        Функции:
        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
        17
        18
        19
        20
        21
        22
        native File_Create(filename[]);
        native File_Rename(filename[], newfile[]);
        native File_Copy(filename[], copyname[], bool:remove_original = falsebool:content_only =false);
        native File_Exists(filename[]);
        native File_Write(filename[]);
        native File_WriteInt(key[], value);
        native File_WriteFloat(key[], Float:value, accuracy = 6);
        native File_WriteString(key[], value[]);
        native File_WriteHex(key[], value);
        native File_WriteBool(key[], bool:value);
        native File_WriteBin(key[], value);
        native File_WriteFinish(filename[]);
        native File_Open(filename[]);
        native File_GetInt(key[]);
        native File_GetFloat(key[]);
        native File_GetString(key[]);
        native File_GetStringEx(key[], dest[], size = sizeof(dest), bool:pack = false);
        native File_GetHex(key[]);
        native File_GetBool(key[]);
        native File_GetBin(key[]);
        native File_Close();

        Тест скорости:
        Запустим этот скрипт: http://pastebin.com/J5X7n9Xz

        ЗАПИСЬ:
        Записываем 100 строк в бланк(чистый файл):
        Code
        4 (ms)


        Записываем(заменяем) 100 строк в файле:
        Code
        50-60 (ms)


        ЧТЕНИЕ:
        Читаем 100 строк из файла:
        Code
        20-40 (ms)

        Форма входа
        топ файлов

        MTA Map Editor 1.3 и...



        [PLUG] MySQL



        Русская версия samp....



        [PLUG] Crash Detect



        [MAP] Интерьер медик...


        Статистика
        Онлайн всего: 1
        Гостей: 1
        Пользователей: 0
        Опрос
        Как Вам сайт?
        Всего ответов: 101