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

想將StringGrid的資料做統計

答題得分者是:careychen
5515531
一般會員


發表:19
回覆:44
積分:12
註冊:2008-04-16

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-09-28 13:20:15 IP:140.134.xxx.xxx 訂閱
我有一筆用StringGrid做成的灰階值資料
想將裡面的資料相同的值作次數的疊加並畫出圖表
careychen
尊榮會員


發表:41
回覆:580
積分:959
註冊:2004-03-03

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-09-28 14:47:26 IP:59.126.xxx.xxx 訂閱
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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-09-28 23:57:05 IP:218.210.xxx.xxx 訂閱
是的!!我跟之前那篇是一樣的意思
之前那篇是值的相加吧!!
而我想要做的是相同的數值的個數有多少個並做成一張圖表
意思是這樣
而且請問一下~~妳用的Delphi可以用在C Builder上嗎??
我想試試看妳的程式碼!!但不知道應該怎麼放~可以教我嗎??
careychen
尊榮會員


發表:41
回覆:580
積分:959
註冊:2004-03-03

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-09-29 10:06:36 IP:59.126.xxx.xxx 訂閱
抱歉,我不熟 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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-09-29 16:36:11 IP:140.134.xxx.xxx 訂閱
我不能用耶!!可能是我哪邊東西有令錯吧!!
careychen
尊榮會員


發表:41
回覆:580
積分:959
註冊:2004-03-03

發送簡訊給我
#6 引用回覆 回覆 發表時間:2008-09-29 18:11:22 IP:59.126.xxx.xxx 訂閱
你怎麼寫的? 把那一整段 function 貼出來看看

===================引 用 5515531 文 章===================
我不能用耶!!可能是我哪邊東西有令錯吧!!
------
價值的展現,來自於你用哪一個角度來看待它!!
5515531
一般會員


發表:19
回覆:44
積分:12
註冊:2008-04-16

發送簡訊給我
#7 引用回覆 回覆 發表時間:2008-09-29 19:38:43 IP:220.228.xxx.xxx 訂閱
我是直接照打你給我的程式碼
而有關i跟j,也有令int
但還是不行
我是用C 語言寫的
編輯記錄
5515531 重新編輯於 2008-09-29 19:39:21, 註解 無‧
careychen
尊榮會員


發表:41
回覆:580
積分:959
註冊:2004-03-03

發送簡訊給我
#8 引用回覆 回覆 發表時間:2008-09-29 19:51:39 IP:59.126.xxx.xxx 訂閱
!!!  C++ 不是 bcb ? 上面那段我是用 bcb 的

那........這個我就不行了~~~,真是不好意思~~~

===================引 用 5515531 文 章===================
我是直接照打你給我的程式碼
而有關i跟j,也有令int
但還是不行
我是用C 語言寫的
------
價值的展現,來自於你用哪一個角度來看待它!!
5515531
一般會員


發表:19
回覆:44
積分:12
註冊:2008-04-16

發送簡訊給我
#9 引用回覆 回覆 發表時間:2008-09-29 20:15:50 IP:218.210.xxx.xxx 訂閱
不會啦!!你已經幫很大忙了
真的很感謝你!!
起碼我多學了一些東西
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#10 引用回覆 回覆 發表時間:2008-09-30 10:28:58 IP:118.169.xxx.xxx 訂閱
不是用BCB,那用的是誰的StringGrid?
careychen
尊榮會員


發表:41
回覆:580
積分:959
註冊:2004-03-03

發送簡訊給我
#11 引用回覆 回覆 發表時間:2008-09-30 11:14:03 IP:218.210.xxx.xxx 訂閱
突然........ 不知道該說什麼............

===================引 用 taishyang 文 章===================
不是用BCB,那用的是誰的StringGrid?
------
價值的展現,來自於你用哪一個角度來看待它!!
5515531
一般會員


發表:19
回覆:44
積分:12
註冊:2008-04-16

發送簡訊給我
#12 引用回覆 回覆 發表時間:2008-09-30 11:15:24 IP:140.134.xxx.xxx 訂閱
不好意思~~今天再嘗試了一下
可以使用了
但是有些部分還是很奇怪
像是要怎麼顯示有哪些數字顯示幾次~我怎麼弄都只有一個數字顯示不出來幾次
編輯記錄
5515531 重新編輯於 2008-09-30 11:25:09, 註解 無‧
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#13 引用回覆 回覆 發表時間:2008-09-30 11:26:27 IP:118.169.xxx.xxx 訂閱

我是用我自己寫的StringGrid
你自己寫的StringGrid跟BCB裡面的StringGrid有什麼不一樣呢?

語法是用C Builder寫的
C bulider是IDE(整合開發環境),你觀念是不是弄錯了呢?





5515531
一般會員


發表:19
回覆:44
積分:12
註冊:2008-04-16

發送簡訊給我
#14 引用回覆 回覆 發表時間:2008-09-30 12:56:18 IP:140.134.xxx.xxx 訂閱
不好意思~我搞錯了!!!
抱歉耶!!
系統時間:2024-05-02 5:29:28
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!