[Include] [INC] mxINI - Самый быстрый INI ридер/райтер
#21

Угу.

Reply
#22

MX_Master, расскажи как тестировал скорость чтения. Я сам протестирую.
Reply
#23

в 1 посте под картинкой ссылка на код ФС с тестингом
Reply
#24

Со скоростью только блох гоняют.
Когда буду брут словарь через павно мутить мб пригодиться
Reply
#25

в любом случае, еси для хранения всего в моде используется Dini, то ваш серв, считайте, серъезно тормозит только из-за пресловутой записи/чтения из файлов на диске
Reply
#26

у меня используется mysql и я не парюсь. Хотя инклуд полезный, базара нет.
Reply
#27

у мя просто админка на INI файлах, сам мод на SQLit'e, а Dini.. да просто устарел он
Reply
#28

более менее
Reply
#29

v0.3
  • Добавлен ini_removeKey.
  • Изменено максимальное значение размера для открытого файла до 64 Кб. Все эти стандартные значения можно изменить по вашему усмотрению до очень больших или совсем крохотных значений.
Reply
#30

Ещё версии будут или можно уже спокойно настроить и залить себе в папку includes?
Reply
#31

I can't understand a shit, because I don't speak russian, but very nice
Reply
#32

в павне почему-то sizeof(PlayerInfo[playerid][pKey]) работает не правильно... давно заметил...
ini_getString(iniFile,"Key",PlayerInfo[playerid][pKey],128 );
Reply
#33

sizeof - не серверный оператор вроде как
Reply
#34

Quote:
Originally Posted by Johnny_Xayc
View Post
sizeof - не серверный оператор вроде как
а кто написал, что серверный?о_О
Reply
#35

Ну раз ты его так используешь...я понимаю ты бы его юзал так sizeof PI[5][pKey] у тебя бы он нормально работал,а так у тебя playerid параметр указан,а playerid не определённое число,вот и не может он вытащить тебе размер)
Reply
#36

Johnny_Xayc Сам понял, что сказал? Всё правильно делает Ziggi, губу не раскатываи x)
Reply
#37

А он Johnny_Xayc прав, playerid не константа, а sizeof - функция компилятора, которая заменяется на число при компилировании
Reply
#38

Quote:
Originally Posted by ZaR
View Post
А он Johnny_Xayc прав, playerid не константа, а sizeof - функция компилятора, которая заменяется на число при компилировании
это функция движка.

Тем кто не верит может проверить на банальном примере
Code:
public OnPlayerText(playerid,text[])
{
printf("-%d-",sizeof(text));
return 1;
}
или вы будете утверждаьб что компилятор заранее знает объем всех введенных в чат текстов и время ввода?
Reply
#39

Quote:
Originally Posted by Johnny_Xayc
View Post
DANGER user this
new tmp[64];
iniGet(iniFile, "Key", tmp); PlayerInfo[playerid][pKey] = tmp;
if(strcmp(PlayerInfo[playerid][pKey],password,true)==0) THEN
your code
END
а смысл? Когда можно сразу указать ini_getString(iniFile,"Key",PlayerInfo[playerid][pKey], 64);
Кстати по-моему PlayerInfo[playerid][pKey] = tmp; не самых правильный вариант копирования строковых переменных. Я считаю лучше использовать strmid(PlayerInfo[playerid][pKey], tmp, 0, strlen(tmp), 255);
Но в любом случаи спасибо.

Quote:
Originally Posted by ZiGGi
View Post
в павне почему-то sizeof(PlayerInfo[playerid][pKey]) работает не правильно... давно заметил...
ini_getString(iniFile,"Key",PlayerInfo[playerid][pKey],128 );
Твой пример более понятен и удобен, т.к. в ини-ридере заложена такая возможность. А на счёт, что нельзя делать sizeof(PlayerInfo[playerid][pKey]) я тоже согласен. Но просто в описании данной ф-ии ini_getString небыло дополнительных пояснений.

Вопрос к автору.
1. Почему ini_getString(iniFile,"Key",PlayerInfo[playerid][pKey],64);
возвращает неполное значение пароля, а выкидывает из пароля некоторые символы. Нельзя это исправить или что надо закоментировать, т.к. код этого инклюда слишком сложный для понимания за один вечер.

Вот к примеру
из пароля Key=crtВЂqz69X
пропал символ 'В'
и вернулся пароль Key = crtЂqz69X
Почему? Как исправить?

2. Также возможно ошибка инклюда
DonateRank и Rank он принимает за одинаковый ключ. И поэтому PlayerInfo[playerid][pRank] всегда пуст.

3. Если я закоментирую вот эти строки в ф-ии stock ini_setString(nFilePointer, szKeyName[], szKeyValue[])
Code:
//_ini_szFileContent[nFilePointer]{ curFilePos++ }				= ' '; // после ключа добавим пробел
	_ini_nDelimPos[nFilePointer][ _ini_nKeysCount[nFilePointer] ]	= curFilePos; // добавим новую позицию INI_DELIMITER
	_ini_nKeysCount[nFilePointer]++; // кол-во ключей в файле +1
	_ini_szFileContent[nFilePointer]{ curFilePos++ }				= INI_DELIMITER; // после пробела выше добавим INI_DELIMITER
//_ini_szFileContent[nFilePointer]{ curFilePos++ }				= ' '; // после INI_DELIMITER добавим пробел
работоспособность инклюда не изменится?

И ещё
Я заметил, что названия ключей, если поменять их в моде, то он не меняет их в процессе работы, но если в моде произошла замена ключа, то данный инклюд ищет совпадения, если не находит, то данная переменная будет пуста. Это так задумано? Это не удобно если название ключа поменялось и надо чтобы постепенно все аккаунты перезаходя на сервер перезаписали название этого ключа. Т.к. самому вручную перебивать в 5000 аккаунтах название одного ключа - это очень скучно.

И последнее для тех, кто будет начинать юзать это инклюд, было бы полезным добавить описание для ф-ии ini_getString, что при значениях, типа как PlayerInfo[playerid][pKey], необходимо указывать размерность.
Reply
#40

Quote:
Originally Posted by DANGER1979
View Post
2. Также возможно ошибка инклюда
DonateRank и Rank он принимает за одинаковый ключ. И поэтому PlayerInfo[playerid][pRank] всегда пуст.
давно такую особенность заметил... делал Level и AdminLevel и долго мозг ипал(((
Reply


Forum Jump:


Users browsing this thread: 13 Guest(s)