Re: [問題] about checking

作者: hlead (希多)   2015-03-13 19:52:32
※ 引述《longhairpan (Steven)》之銘言:
: =======================================
: 目前似乎加上 -g 主職 結果就會不太正常,
: -r 種族 也是,
: 然後兩個合在一起也不能用
1.此問題為迴圈計算有問題,已修正了。
原本為:
for(i=0;i<n;i++)
{
if((t1=="r" && (string)ob[i]->query("race")==t2) ||
(t1=="g" && (string)ob[i]->query("pri_guild")==t2) )
msgs+=sprintf(" %d. %s %s(%s) %d\n",ob[i]->query("level"),
ob[i]->query("checking_name"),
ob[i]->query("chi_name"),ob[i]->query("cap_name"),
(int)ob[i]->query("record_data/nobu_money"));
else
{
n++;
if(n>=j) return msgs;
}
}
附註:假如他找30筆,但是總筆數只有26筆時。他跑else就直接跳出迴圈了。
修正為:
for(i=0;i<j;i++)
{
if((t1=="r" && (string)ob[i]->query("race")==t2) ||
(t1=="g" && (string)ob[i]->query("pri_guild")==t2) )
{
msgs+=sprintf(" %d. %s %s(%s) %d\n",ob[i]->query("level"),
ob[i]->query("checking_name"),
ob[i]->query("chi_name"),ob[i]->query("cap_name"),
(int)ob[i]->query("record_data/nobu_money"));
num++;
if(num>=n) return msgs;
}
}
多設一個 num 來判斷目前數目。(只修正 -r , -g 情況,其他沒錯、不影響。)
附註:j=資料全部總數 , n=輸入的查詢數
2. -r -g 好像本來就不能混用,不過應該可以加此功能。

Links booklink

Contact Us: admin [ a t ] ucptt.com