矩陣判斷空值怪怪的 !! |
尚未結案
|
hmjhmj
一般會員 發表:20 回覆:7 積分:5 註冊:2002-08-17 發送簡訊給我 |
我有一個table 裡面有 很多個 ID(項目)& 在當月的歷史資料!!
我現在要做的是 ==>使用者給予 ID(i) & 開始月份,結束月份 (J)==>已知的!
我要產生的是~~ 例如資料如下:
2004/01 2004/02 2004/03 2004/04
ID(0) 有資料 有資料 有資料
ID(1) 有資料 有資料 有資料
ID(2) 有資料 有資料 有資料 有資料 我要產生一個矩陣
去掉 沒資料的列!! (只要有某個id 在當月沒資料,其他id的當約資料我就不要了)
變成
2004/01 2004/03
ID(0) 有資料 有資料
ID(1) 有資料 有資料
ID(2) 有資料 有資料 Array 一開始是不知道大小的!!!
之後判斷出來後成為一個
一個3*2的矩陣!!
J( 0 ) J(1)
i( 0 )
i( 1 )
i( 2 ) ==========================
目前我的做法~~使用3個矩陣(MyArray1,MyArray2,MyArray3)!!
1. 先去產生一個矩陣MyArray1
不管有沒有資料都先接出來!! 成為MyArray1 2. 產生MyArray2 和Myarray1 一樣大!!
判斷Myarray1是不是每一行都有資料!!
有資料的話才去把資料塞到Myarray2,
順道紀錄資料有塞進去幾次(n次),
所以我 Myarray2的大小和Myarray1 相同,
所以 Myarray2 資料可能只到 第n 行,第n 1行之後應該是沒資料的 3.產生 MyArray3 有i項,N行!!
將MyArray2的資料塞進MyArray3 中~~這個MyArray3即是我要的! 程式碼在下面~~~
我的判斷空值怪怪的!!!好像沒判斷到~~~
請問我要如何改??
|
hmjhmj
一般會員 發表:20 回覆:7 積分:5 註冊:2002-08-17 發送簡訊給我 |
var a: boolean; i,j,k,n,RecordCnt,TotalMonth:integer; tmpTableName:string; tmpFromDate,tmpToDate:TDateTime; sumReturn,AvgReturn,sumAvgReturn:double; MyArray,MyArray2,MyArray3: array of array of integer; begin //計算會有幾個月資料 (判斷有幾行) TotalMonth:= (StrToInt(copy(FormatDateTime('YYYY/MM/DD',tmpToDate),1,4))- StrToInt(copy(FormatDateTime('YYYY/MM/DD',tmpFromDate),1,4)))*12 (StrToInt(copy(FormatDateTime('YYYY/MM/DD',tmpToDate),6,2))- StrToInt(copy(FormatDateTime('YYYY/MM/DD',tmpFromDate),6,2))) 1; 第一步: //Myarray1 資料已經可以塞進去沒問題了!! 第二步: //將Myarray1 過濾值不存在的欄位之後 放到Myarray2 中 SetLength(MyArray2, IndexList.Count-1,TotalMonth-1); k:=0; for j := 0 to TotalMonth-1 do begin a:=False; for i := 0 to IndexList.Count-1 do begin if inttostr(Myarray[i,j])= '' then // 這邊的判斷空值有問題!!! 感覺好像都沒判斷到!! a:=true; end; if not a then begin //塞值到Marray2 for i:=0 to IndexList.Count-1 do begin Myarray2[i,k]:=Myarray1[i,j] ; k:=k 1; n:=k; end; end; end; 第三步: //將Myarray2 值放到Myarray3 中 SetLength(MyArray3, IndexList.Count-1,n); for i := 0 to IndexList.Count-1 do begin k:=0; for j := 0 to n do begin Myarray3[i,j]:=Myarray2[i,k] ; k:=k 1; end; end; |
hmjhmj
一般會員 發表:20 回覆:7 積分:5 註冊:2002-08-17 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |