作者laechan (小太保)
看板mud_sanc
标题Re: [wizs] 重写的 times_check
时间Wed Oct 2 12:07:40 2013
今天再修改 times_check 处理 set_times_check 及 no_save 时
的错误,由 justin 实测及发现。
jj=sizeof(tmps2);
for(ii=0;ii<jj;ii++)
if(times_check[tmp][ii][0]==names && times_check[tmp][ii][1]==files)
jj=-1;
if(jj!=-1)
times_check[tmp]+=({ ({names,files,tmps}) });
改成这样即可,上面的判断是说在做 set_times_check 时,若现
时 times_check 里面已经有相同的资料(if ... && ...),jj=-1
,就不允许做资料的累加。
之前的问题则是这部份判断错误,造成不该累加的资料它也累加,
原先的写法错误的地方在於它只要判断到现存的有一笔不 match
就累加,至於为何会这样写是因为之前是 mapping 写法,mapping
时..
if(times_check[tmp][tmp2][0]!=names || ...
mapping 是一对一的(每一笔 tmp2 是独立的),而改成 mixed 时
因为阵列资料不能用 member_array 去判断只好用 for 去判断,
然後就这样产生失误。
Laechan
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 210.61.157.53