想將StringGrid的資料做統計 |
答題得分者是:careychen
|
5515531
一般會員 發表:19 回覆:44 積分:12 註冊:2008-04-16 發送簡訊給我 |
|
careychen
尊榮會員 發表:41 回覆:580 積分:959 註冊:2004-03-03 發送簡訊給我 |
hi,有看到您在另一篇 StringGrid累加值的問題 也有發問,不知道本篇問的是不是與那篇相同
因為這篇的文字說明,有點看不懂,其實就上面的那篇中,他的運算模式是大於1 則加 1 , 您的改法其實就是弄一個動態陣列,動態陣列的長度為 StringGrid 中的最大值,然後逐一掃描 StringGrid 中的值,將掃到的值加入動態陣列中去累加次數 例如:(我用 Delphi) 這個 Sample 中因為不知道 StringGrid 中會出現最大的值為多少 所以我先預設了一個 iMax 來設定動態陣列的長度 而當值大於陣列的大小而無法放置時,再動態設定陣列的長度一次 [code delphi] procedure TForm2.Button1Click(Sender: TObject); var arrCounting: Array of Integer; I, J, iMax, iCellValue: Integer; begin iMax := 10; // StringGrid 中最大的值 SetLength(arrCounting, iMax); // 動態設陣列 for I := 1 to StringGrid1.ColCount-1 do for J:= 1 to StringGrid1.RowCount-1 do begin iCellValue := StrToIntDef(StringGrid1.Cells[I, J], 0); if (iCellValue 1) > High(arrCounting) then SetLength(arrCounting, iCellValue 1); // 已超出原本的陣列大小,重新再調一次 Inc(arrCounting[iCellValue]); end; end; [/code] ===================引 用 5515531 文 章=================== 我有一筆用StringGrid做成的灰階值資料 想將裡面的資料相同的值作次數的疊加並畫出圖表
------
價值的展現,來自於你用哪一個角度來看待它!! |
5515531
一般會員 發表:19 回覆:44 積分:12 註冊:2008-04-16 發送簡訊給我 |
|
careychen
尊榮會員 發表:41 回覆:580 積分:959 註冊:2004-03-03 發送簡訊給我 |
抱歉,我不熟 c++ 我不會動態變更陣列 ,所以我用 TStringList 來代替,你先看一下結果是不是你要的
[code cpp] TStringList *tsTmp = new TStringList; for (int i=1; i < StringGrid1->ColCount; i ) for (int j = 1; j < StringGrid1->RowCount; j ) { int iValue = StrToIntDef(tsTmp->Values[StringGrid1->Cells[i][j]], 0); iValue ; tsTmp->Values[StringGrid1->Cells[i][j]] = IntToStr(iValue); }; tsTmp->Sort(); for (int i=0; i < (tsTmp->Count); i ) ShowMessage(Format("數字 %s 有出現 %s 次", OPENARRAY(TVarRec,(tsTmp->Names[i],tsTmp->Values[i])))); tsTmp->Free(); [/code]
------
價值的展現,來自於你用哪一個角度來看待它!! |
5515531
一般會員 發表:19 回覆:44 積分:12 註冊:2008-04-16 發送簡訊給我 |
|
careychen
尊榮會員 發表:41 回覆:580 積分:959 註冊:2004-03-03 發送簡訊給我 |
|
5515531
一般會員 發表:19 回覆:44 積分:12 註冊:2008-04-16 發送簡訊給我 |
|
careychen
尊榮會員 發表:41 回覆:580 積分:959 註冊:2004-03-03 發送簡訊給我 |
|
5515531
一般會員 發表:19 回覆:44 積分:12 註冊:2008-04-16 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
careychen
尊榮會員 發表:41 回覆:580 積分:959 註冊:2004-03-03 發送簡訊給我 |
|
5515531
一般會員 發表:19 回覆:44 積分:12 註冊:2008-04-16 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
5515531
一般會員 發表:19 回覆:44 積分:12 註冊:2008-04-16 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |