線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1095
推到 Plurk!
推到 Facebook!

如何簡查陣列個位數相同號碼,有相同個位數號碼要秀出個拾二位數?

答題得分者是:P.D.
K1086
初階會員


發表:63
回覆:148
積分:42
註冊:2007-04-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-05-03 20:19:15 IP:220.131.xxx.xxx 訂閱
已知下列陣列數 有19 18 01 37 36
假設 SA1 值是 個位數 7
IF EDT_11.TEXT='AA' THEN
FOR I:=1 TO 5 DO
Show_Lab0.CAPTION:=Show_Lab0.CAPTION NSno_A1[I] ' ';
STTEMP:='1918013736';
for i:=1 to 5 do
begin
j:=i*2-1;
NSno_A1[i]:=copy(STTEMP,j,2);
IF
SA1 = (NSno_A1[i]) Then ----------------->這二行的指令如何下 請教各位 Delphi 高手指導
SHOWMESSAGE(NSno_A1[i]); ----------------->
end;
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-05-04 11:41:24 IP:61.67.xxx.xxx 未訂閱
不是很清楚這程式的目的為何, 如果你只是很單純要 SA1值比對陣列值的個位數, 具有相同個位數的要顯示出, 有這個方法
SA1:= 7;
for i:= 1 to 5 do begin
if NSno_A1[i] mod 10 = SA1 then 顯示
end;

如果NSno_A1宣告的是字串型態, 可以把它轉換成整數後再用 MOD 計算
MOD 是取餘數的函式, 為何要除10, 因為這樣可以取得個位數的值 37/10 餘 7
當然這只是其中一種做法, 而其實你的做法也很接近了, 再試試看也可以成功的
===================引 用 K1086 文 章===================
已知下列陣列數 有19 18 01 37 36?
假設?SA1 值是 個位數 7
IF EDT_11.TEXT='AA' THEN
???????? FOR I:=1 TO 5 DO
???????? Show_Lab0.CAPTION:=Show_Lab0.CAPTION NSno_A1[I] '? ';
???????? STTEMP:='1918013736';
???????? for i:=1 to 5 do
???????? begin
???????????? j:=i*2-1;
???????????? NSno_A1[i]:=copy(STTEMP,j,2);?????
????????? IF
?????????????? SA1 = (NSno_A1[i]) Then????????????? ----------------->這二行的指令如何下 請教各位 Delphi 高手指導?
?????????????? SHOWMESSAGE(NSno_A1[i]);??? ----------------->
???????? end;
K1086
初階會員


發表:63
回覆:148
積分:42
註冊:2007-04-09

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-05-04 19:54:20 IP:220.131.xxx.xxx 訂閱

===================引 用 P.D. 文 章===================
不是很清楚這程式的目的為何, 如果你只是很單純要 SA1值比對陣列值的個位數, 具有相同個位數的要顯示出, 有這個方法
SA1:= 7;
for i:= 1 to 5 do begin
?? if NSno_A1[i] mod 10 = SA1 then?顯示
end;

如果NSno_A1宣告的是字串型態, 可以把它轉換成整數後再用 MOD 計算
MOD 是取餘數的函式, 為何要除10, 因為這樣可以取得個位數的值 37/10 餘 7
當然這只是其中一種做法, 而其實你的做法也很接近了, 再試試看也可以成功的

謝謝 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 值 (假設 VA1:=6)
Lab_N2.Caption :=(IntTostr(KSno_A1[i])); ----->問題就是在這只秀一個吻合值,第二個吻合值不秀
end;



===================引 用 K1086 文 章===================
已知下列陣列數 有19 18 01 37 36?
假設?SA1 值是 個位數 7
IF EDT_11.TEXT='AA' THEN
???????? FOR I:=1 TO 5 DO
???????? Show_Lab0.CAPTION:=Show_Lab0.CAPTION NSno_A1[I] '? ';
???????? STTEMP:='1918013736';
???????? for i:=1 to 5 do
???????? begin
???????????? j:=i*2-1;
???????????? NSno_A1[i]:=copy(STTEMP,j,2);?????
????????? IF
?????????????? SA1 = (NSno_A1[i]) Then????????????? ----------------->這二行的指令如何下 請教各位 Delphi 高手指導?
?????????????? SHOWMESSAGE(NSno_A1[i]);??? ----------------->
???????? end;
系統時間:2024-05-16 17:45:23
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!