全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1147
推到 Plurk!
推到 Facebook!

矩陣判斷空值怪怪的 !!

尚未結案
hmjhmj
一般會員


發表:20
回覆:7
積分:5
註冊:2002-08-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-06-28 12:37:24 IP:211.22.xxx.xxx 未訂閱
我有一個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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-06-28 12:38:42 IP:211.22.xxx.xxx 未訂閱
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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-06-30 10:16:17 IP:211.22.xxx.xxx 未訂閱
我已經找到問題點了!!! thanks!
系統時間:2024-05-19 20:19:25
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!