請問PD版主如何解決同一陣列數有相同號碼比對之後同時用陣列秀出? |
答題得分者是:P.D.
|
K1086
初階會員 發表:63 回覆:148 積分:42 註冊:2007-04-09 發送簡訊給我 |
謝謝 P D 版主指導 依照P D 版主的方式 已經解決比對陣列值的個位數,但是還有下列問題沒解決
例如:陣列數 有 19 18 01 37 57 36 56有雙7個位數 (37 57)及雙6個位數 (36 56) 再比對之後才秀出一個 如37 (57就無法秀出) 36秀出 (56就無法秀出) 小弟把片段執行程式 列出 請 P D 版主指導 IF EDT_11.TEXT='AA' THEN FOR I:=1 TO 7 DO Show_Lab0.CAPTION:=Show_Lab0.CAPTION NSno_A2[I] ' '; STTEMP:='19180137573656'; for i:=1 to 7 do begin j:=i*2-1; NSno_A2[i]:=copy(STTEMP,j,2); end; //以下是字串轉數字運算--------------- IF EDT_11.TEXT='AA' THEN for i:=1 to 7 do begin KSno_A1[i]:=STRTOINT(NSno_A2[i]); if KSno_A1[i] mod 10 = VA1 then ---->先比對 VA1 值 (假設 VA1:=7) Lab_N1.Caption :=(IntTostr(KSno_A1[i])); if KSno_A1[i] mod 10 = VA2 then ---->再比對 VA2 值 (假設 VA2:=6) Lab_N2.Caption :=(IntTostr(KSno_A1[i])); ----->問題就是在這只秀一個吻合值,第二個吻合值不秀 end; |
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
其實我看不太懂你的寫法, 而且這個寫法也存在很多非理性用法, 我改成如下
procedure TForm1.Button1Click(Sender: TObject); var i, k, m, n: integer; vak: array[0..1] of integer; // 將要比對的個位值以陣列存入 NSno_A2: array of string; sttemp: string; begin if EDT_11.Text='AA' Then begin sttemp:='19180137573656'; // 使用div, 確保取出為整數商值 14/2=商7, 餘 0, 15/2=商7, 餘1 n:= length(sttemp) div 2; // 設定陣列變數大小, 陣列第一個值是 NSno_A2[0] setlength(NSno_A2,n); vak[0]:= 7; vak[1]:= 6; Show_Lab0.Caption:= ''; for i:=1 to n do begin NSno_A2[i-1]:= copy(sttemp,i*2-1,2); Show_Lab0.Caption:= Show_Lab0.Caption NSno_A2[i-1] ' '; end; //以下是字串轉數字運算--------------- Lab_N1.Caption:= ''; // 先清空 for i:=1 to n do begin // 不清楚為何使用一個陣例值KSno_A1[i]來存放變值 // 另外建議用StringToIntDef()來轉換, 因為 StringToInt()發生錯誤會當出 k:= StrToIntDef(NSno_A2[i-1],0); //依序比對 ak 值 (假設 ak:=7 or 6) //因為 k=NSno_A2[i](只是型態不同) for m:= 0 to length(vak)-1 do if (k mod 10) = vak[m] then Lab_N1.Caption:= Lab_N1.Caption ' ' (IntTostr(k)); end; end; end; // 這是源頭 begin ... end 另外建議, 如果希望程式能讓其他人一眼就很容易閱讀, 最好有大小寫的用法, 你看看Delphi的procedure , function 提示就很清楚了, 我提供的只是一個做法, 如何美化及加強, 就看你自己, 因為我不知道你要這樣的程式做什麼用途?
編輯記錄
P.D. 重新編輯於 2007-05-06 02:54:56, 註解 無‧
|
K1086
初階會員 發表:63 回覆:148 積分:42 註冊:2007-04-09 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |