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