看板 mud_sanc 關於我們 聯絡資訊
今天再修改 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