#if defined _unlimited_included
	#endinput
#endif
#define _unlimited_included

#define U_MAX_LEN_STRING 512
#define U_MAX_OPEN_FILES 20

//For U_fseek
#define U_SEEK_START    0
#define U_SEEK_CUR    1
#define U_SEEK_END    2

//For U_faccess
#define IS_RW 06
#define IS_READ 04
#define IS_WRITE 02
#define IS_EXIST 00


//For U_fopen
//Text
#define MODE_READ "r" // RU: ОТКРЫВАЕТ текстовый файл для чтения, ENG: Open text file for read
#define MODE_WRITE "w" // RU: СОЗДАЁТ текстовый файл для записи, ENG: Create text file for write
#define MODE_ADD "a" // RU: ДОПИСЫВАЕТ в текстовый файл , ENG: Added to text file
#define MODE_RW_1 "r+" // RU: ОТКРЫВАЕТ текстовый файл для чтения и записи , ENG: Open text file for read & write
#define MODE_RW_2 "w+" // RU: СОЗДАЁТ текстовый файл для чтения и записи , ENG: Create text file for read & write
#define MODE_RW_3 "a+" // RU: ОТКРЫВАЕТ текстовый файл для чтения и записи , ENG: Open text file for read & write
//Binary
#define MODE_BIN_READ "rb" // RU: ОТКРЫВАЕТ двоичный файл для чтения, ENG: Open binary file for read
#define MODE_BIN_WRITE "wb" // RU: СОЗДАЁТ двоичный файл для записи, ENG: Create binary file for write
#define MODE_BIN_ADD "ab" // RU: ДОПИСЫВАЕТ в двоичный файл , ENG: Added to binary file
#define MODE_BIN_RW_1 "rb+" // RU: Открывает двоичный файл для чтения и записи, ENG: Open binary file for read & write
#define MODE_BIN_RW_2 "wb+" // RU: Создает двоичный файл для чтения и записи, ENG: Create binary file for read & write
#define MODE_BIN_RW_3 "ab+" // RU: Открывает двоичный файл для чтения и записи, ENG: Open binary file for read & write
//RU: есть ещё методы, ищите в гугле. ENG: And search in google more methods

native File:U_fopen(filename[],openparam[]=MODE_RW_2);
//Открывает файл с заданными правами, Возвращает: Идентификатор файла(handle), если ошибка то вернёт -1.
//ENG: Opens file with select params, Returns: File:Filehandle, is -1 if failed
native U_fclose(File:handle);
//Закрывает по ссылке полученной от U_fopen работу с файлом, при успешном закрытии вернёт 1, при ошибке -1.
//ENG: Close file, 1 on success -1 on failure.
native U_fread(File:handle,string[],size = sizeof string);
//Читает строку из файла, при успешном считывании вернёт 1, при ошибке -1.
//ENG: Read one line from file, 1 on success -1 on failure.
native U_fwrite(File:handle,string[]);
// Записывает строку в файл, успешная запись вернёт 1, ошибочная -1.
//ENG: Write one string in file, 1 on success -1 on failure.
native U_faccess(filename[],mode=IS_EXIST);
// Проверяет доступ к файлу по четырём возможным параметрам, при открытом доступе вернёт 1, при закрытом -1.
//ENG: Check access to file, 1 on success -1 on failure.
native U_flength(filename[]);
// Получает длину файла в байтах, при ошибке вернёт -1.
//ENG: Return size file in bytes, or -1 if failed
native U_fseek(File:handle,pos,default_pos=U_SEEK_START);
//Перемещает курсор внутри файла на pos, отнасительно default_pos, при успешном перимещении вернёт 1, при ошибке -1.
//ENG: Change the current position in the file. 1 on success -1 on failure.
native U_ftell(File:handle);
//Возвращает текущую позицию курсора в файле, если произошла ошибка то -1.
//ENG: Return this position in the file, fail -1
native U_fremove(filename[]);
//Удаляет указанный файл, при успешном удалении вернёт 1, при ошибке -1
//ENG: Remove an existing file. 1 on success -1 on failure.
native U_feof(File:hanlde);
//Определяет достижение конца файла, если текущяя позиция является концом - вернётся значение 1, в противном случае 0, в случае ошибки -1

native U_rename(oldname[],newname[]);
//Перииминовывает файл\директорию, этой функцией можно периместить файл\директорию,
//но периносить данные между устройствами не получится
//если функция выполнена успешно - вернёт 1, если ошибочно -1

native U_cdir(dirname[]);
//Создаёт директорию, при успешном создании вернёт 1, иначе -1

native U_rmdir(dirname[]);
//Удаляет директорию, ВНИМАНИЕ!: Функция может удалить только пустую директорию, при успешном удалении вернёт 1, иначе -1

native U_sort(mass[],valsortcall);