Просмотр полной версии : [Вопрос] sscanf
Привет, ребят.
Напомните пожалуйста, как через ссканф записывать текст в массив.
Как делаю:
cache_get_field_content(i, "RankName", temp), sscanf(temp, "p<|>s[16]", FracInfo[i][fRankName]);
Логи:
[01:07:30] sscanf warning: Strings without a length are deprecated, please add a destination size.
[01:07:30] sscanf warning: String buffer overflow.
[01:07:30] sscanf warning: String buffer overflow.
[01:07:30] sscanf warning: String buffer overflow.
[01:07:30] sscanf warning: String buffer overflow.
[01:07:30] sscanf warning: String buffer overflow.
[01:07:30] sscanf warning: String buffer overflow.
[01:07:30] sscanf warning: String buffer overflow.
[01:07:30] sscanf warning: String buffer overflow.
[01:07:30] sscanf warning: String buffer overflow.
[01:07:30] sscanf warning: String buffer overflow.
[01:07:30] sscanf warning: String buffer overflow.
[01:07:30] sscanf warning: String buffer overflow.
[01:07:30] sscanf warning: String buffer overflow.
[01:07:30] sscanf warning: String buffer overflow.
[01:07:30] sscanf warning: String buffer overflow.
[01:07:30] [Мэрия] RankName: PayDay: 500
[01:07:30] 0|0|0|0|0|0|0|500|0|0|0|0|0|500|500|500
[01:07:30] [Загрузка фракций] Фракций загружено: 1
cache_get_field_content(i, "RankName", temp), попробуй на это поменять
cache_get_field_content(i, "RankName", temp, 1, 16)
$continue$
20.08.2015, 19:19
А что за версия плагина?
А что за версия плагина?
2.8.1
cache_get_field_content(i, "RankName", temp), попробуй на это поменять
cache_get_field_content(i, "RankName", temp, 1, 16)
Нет, ты не понял, ты загружаешь в локальный массив, а мне нужно в глобальный, и по определенным параметрам, то-есть, смотрим текст через | и каждый раз записываем в +1 глобальный массив.
$continue$
20.08.2015, 19:56
Версия плагина MySQL
Версия плагина MySQL
R39-3.
Зарплату подгружаю вот так:
cache_get_field_content(i, "PayDay", temp), sscanf(temp, "p<|>a<d>[16]", FracInfo[i][fPayDay]);
С зарплатой все нормально.
2.8.1
Нет, ты не понял, ты загружаешь в локальный массив, а мне нужно в глобальный, и по определенным параметрам, то-есть, смотрим текст через | и каждый раз записываем в +1 глобальный массив.
я загружаю ровно в тот массив, который ты предоставил, не?
$continue$
20.08.2015, 20:06
Стрельба в ногу себе? Зачем в многопоточном плагине юзать sscanf? -_-
да, и зачем тебе разделитель p<|> если в поле у тебя по любому будет 1 значение?
Загружай RankName без sscanf...
- - - Добавлено - - -
Стрельба в ногу себе? Зачем в многопоточном плагине юзать sscanf? -_-
cache_get_field_content(0, "exitpos", String_Buffer, Mysql_Connect, 100);
sscanf(String_Buffer, "p<,>fffdd", PlayerInfo[playerid][pExitPos][0], PlayerInfo[playerid][pExitPos][1], PlayerInfo[playerid][pExitPos][2], PlayerInfo[playerid][pExitVirtual], PlayerInfo[playerid][pExitInterior]);
действительно, для чего нужен sscanf? Ах да! Для удобства хранения данных
$continue$
20.08.2015, 20:15
да, и зачем тебе разделитель p<|> если в поле у тебя по любому будет 1 значение?
Загружай RankName без sscanf...
- - - Добавлено - - -
cache_get_field_content(0, "exitpos", String_Buffer, Mysql_Connect, 100);
sscanf(String_Buffer, "p<,>fffdd", PlayerInfo[playerid][pExitPos][0], PlayerInfo[playerid][pExitPos][1], PlayerInfo[playerid][pExitPos][2], PlayerInfo[playerid][pExitVirtual], PlayerInfo[playerid][pExitInterior]);
действительно, для чего нужен sscanf? Ах да! Для удобства хранения данных
Я никаких удобств в этом не вижу.
Я никаких удобств в этом не вижу.
из вредности не буду доказывать тебе обратное... Но и ты не внушай людям своё мнение
да, и зачем тебе разделитель p<|> если в поле у тебя по любому будет 1 значение?
Загружай RankName без sscanf...
- - - Добавлено - - -
cache_get_field_content(0, "exitpos", String_Buffer, Mysql_Connect, 100);
sscanf(String_Buffer, "p<,>fffdd", PlayerInfo[playerid][pExitPos][0], PlayerInfo[playerid][pExitPos][1], PlayerInfo[playerid][pExitPos][2], PlayerInfo[playerid][pExitVirtual], PlayerInfo[playerid][pExitInterior]);
действительно, для чего нужен sscanf? Ах да! Для удобства хранения данных
cache_get_field_content(i, "RankName", temp), sscanf(temp, "p<|>s[16]", FracInfo[i][fRankName][0], FracInfo[i][fRankName][1], FracInfo[i][fRankName][2], FracInfo[i][fRankName][3], FracInfo[i][fRankName][4], FracInfo[i][fRankName][5], FracInfo[i][fRankName][6],
FracInfo[i][fRankName][7], FracInfo[i][fRankName][8], FracInfo[i][fRankName][9], FracInfo[i][fRankName][10], FracInfo[i][fRankName][11], FracInfo[i][fRankName][12], FracInfo[i][fRankName][13], FracInfo[i][fRankName][14], FracInfo[i][fRankName][15]);
Лог:
[19:20:54] sscanf warning: Format specifier does not match parameter count.
[19:20:54] [Мэрия] RankName: Майор|None|None PayDay: 0
[19:20:54] 0|0|0|0|0|0|0|5
[19:20:54] [Загрузка фракций] Фракций загружено: 1
С чего ты взял что у меня одно значение? У меня 16 названий через |
- - - Добавлено - - -
Исправил. Сделал через двумерный массив.
Закрыто.
Powered by vBulletin® Version 4.2.0 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot