fmatch

Материал из Pro-Pawn Wiki
Перейти к: навигация, поиск

Описание:

Ищет файлы с именами, подходящими под маску, и возвращает имя одного из найденных файлов.

Параметры:

(name[], const pattern[], index = 0, size = sizeof name)
name[] Массив для записи одного из файловых имён, подошедших под маску в аргументе pattern.
const pattern[] Маска, в которой символы ? и * означают один или любое количество символов соответственно.
index Номер подошедшего под маску файлового имени, которое нужно записать в массив name (необязательный параметр; по умолчанию в name записывается первое совпадение).
size Размер массива name (необязательный параметр).


Возвращаемое значение:

true, если найден хотя бы один файл, иначе 0. Имя найденного файла возвращается косвенно в массиве name.

Bug.png
Баг SA-MP
Данная функция не работает в SA-MP. Причина в том, что в SA-MP Team неосторожно обновили инклуды с Pawn 3.0 до более поздней версии (в которой функция fmatch() и появилась, в 3.0 её ещё не было), забыв обновить реализацию функций на сервере. Как результат, функция объявлена в file.inc, но не существует внутри сервера.


Пример использования:

main()
{
    // Приведённый ниже код не работает в SA-MP!
    // (работа подтверждена только в Pawn 3.2)
    static const pattern[] = "*";
    new name[256];
    new num_matches;

    num_matches = fexist(pattern); // Для тех, кто не прочёл комментарий выше:
                                   // в SA-MP функция fexist() так не работает!
    printf("Файлов в текущей папке: %d\n", num_matches);

    for (new i = 0; i < num_matches; ++i)
    {
        fmatch(name, pattern, i);
        printf("%03d: %s\n", i, name);
    }
}


См. также: