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

TStringList內的值加總

尚未結案
No-where
一般會員


發表:31
回覆:53
積分:16
註冊:2002-09-05

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-03-24 09:38:26 IP:203.69.xxx.xxx 未訂閱
hi .. 我用StringList將某個檔讀入...(各列皆為數值) 是不是只能用迴圈來計算總值 還是有其它的方法呢?? 謝謝!!
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-03-24 09:47:33 IP:147.8.xxx.xxx 未訂閱
Look like this one?
var
    i,Total: integer;
begin
    Total := 0;
    for i := 0 to StringList.Count-1 do
        inc(Total,StrToIntDef(StringList[i],0);
{....} end;
ddy
站務副站長


發表:262
回覆:2105
積分:1169
註冊:2002-07-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-03-24 09:48:56 IP:61.218.xxx.xxx 未訂閱
以StringList 而言,並沒有加總的屬性方法 如果妳不透過取得count 用迴圈實現 那麼…妳期待中的方法是怎樣子?    還是妳要用更複雜的方式?呼叫excel 用它來幫妳完成計算 ? < src="http://delphi.ktop.com.tw/loadfile.php?TOPICID=8147403&CC=182217">
No-where
一般會員


發表:31
回覆:53
積分:16
註冊:2002-09-05

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-03-24 19:00:19 IP:203.69.xxx.xxx 未訂閱
因目前要讀的是一個csv檔 前幾列為描述資料 而後是一些數值資料 如 FieldA FieldB FieldC 1 T1 5 2 T2 3 3 T1 3 ............. 我想將T1,T2... 的所有FieldC加總 因資料列至少萬筆以上... 用迴圈可以跑出 只是想知道有無更快速的方法... 謝謝 and 另一問題點 csv檔大概介於 5mb~10mb 目前想到是用StringList來作... 不知道有沒有其它方法呢 用Delphi4
Jasonwong
版主


發表:49
回覆:931
積分:581
註冊:2006-10-27

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-03-24 20:03:11 IP:61.70.xxx.xxx 未訂閱
或許你可以將資料加進資料庫中... 這樣一來就可以下SQL去加總了... . .. ... 不曉得行不行啊... -- 聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心 傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心
------
聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心
傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心
ddy
站務副站長


發表:262
回覆:2105
積分:1169
註冊:2002-07-13

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-03-24 20:32:46 IP:211.74.xxx.xxx 未訂閱
No-where    Jasonwong 兄所言很正確:『或許你可以將資料加進資料庫中』 下sql 指令取得sum     不過妳還是得試試二者何者效率較高,再記得分享心得吧     < src="http://delphi.ktop.com.tw/loadfile.php?TOPICID=8147403&CC=182217">
No-where
一般會員


發表:31
回覆:53
積分:16
註冊:2002-09-05

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-03-24 21:05:59 IP:61.64.xxx.xxx 未訂閱
因每個檔都上萬筆資料, 每天有60個檔要轉...只求sum值.. 先入database我覺得效果差不多說 再想想 謝謝各位的解答 ^_^
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-03-24 22:02:22 IP:210.3.xxx.xxx 未訂閱
For csv file, I think you could create an ODBC link to it using M$ Text driver. Then it is only a simple select sum sql statement. 
cmj
高階會員


發表:15
回覆:242
積分:226
註冊:2002-06-12

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-03-24 22:12:12 IP:211.76.xxx.xxx 未訂閱
引言: 因每個檔都上萬筆資料, 每天有60個檔要轉...只求sum值.. 先入database我覺得效果差不多說 再想想 謝謝各位的解答 ^_^
1.delphi並無針對csv檔加總之元件,所以要自己做 2.60個檔每個檔上萬筆求總和,應確定資料未來還要用,是就要存資料庫,求總和是不是非常即時性,應該說csv產生後馬上要在多少時間內求的總和,那效率才是考慮重點. 3.excel,foxpro也可以應用,所以先確定重點.
ddy
站務副站長


發表:262
回覆:2105
積分:1169
註冊:2002-07-13

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-03-24 23:05:03 IP:211.74.xxx.xxx 未訂閱
No-where 不然只好將求和的部份,寫在產生CSV 每寫一筆就累加一次(邊讀邊累加) csv 檔產生後…將總和另存    眾多方法,還須妳自己一試    
No-where
一般會員


發表:31
回覆:53
積分:16
註冊:2002-09-05

發送簡訊給我
#11 引用回覆 回覆 發表時間:2003-03-25 17:49:16 IP:203.69.xxx.xxx 未訂閱
謝謝大家 因此csv檔是由量測機台所產生的 相關程式不是由我們寫的 所以有些地方會覺得很麻煩...^_^ 現在我還是使用TStringList來loadfile 再跑迴圈計算 只要求總值而已 測試過後再跟大家報告效率... 目前看起來還好 不算慢.....:P
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#12 引用回覆 回覆 發表時間:2003-03-25 17:58:20 IP:147.8.xxx.xxx 未訂閱
引言:謝謝大家 因此csv檔是由量測機台所產生的 相關程式不是由我們寫的 所以有些地方會覺得很麻煩...^_^ 現在我還是使用TStringList來loadfile 再跑迴圈計算 只要求總值而已 測試過後再跟大家報告效率... 目前看起來還好 不算慢.....:P
Oh... I wonder if you could test the speed in using ODBC connecting to this csv file and then get the sum using sql statement. >
No-where
一般會員


發表:31
回覆:53
積分:16
註冊:2002-09-05

發送簡訊給我
#13 引用回覆 回覆 發表時間:2003-03-26 12:33:02 IP:203.69.xxx.xxx 未訂閱
m~~我想先把程式趕出來 and 我會試著用odbc去runrun看的 謝謝大家的解答
Lonnie
一般會員


發表:6
回覆:6
積分:2
註冊:2002-09-03

發送簡訊給我
#14 引用回覆 回覆 發表時間:2003-03-26 14:50:34 IP:202.77.xxx.xxx 未訂閱
你要注意 TStringList 能吾 Load 得起整個檔案, 小心因 Memory 不夠而 Load 得一部份... Lonnie
No-where
一般會員


發表:31
回覆:53
積分:16
註冊:2002-09-05

發送簡訊給我
#15 引用回覆 回覆 發表時間:2003-03-26 21:42:53 IP:61.64.xxx.xxx 未訂閱
現在電腦基本都有64mb 這樣會不夠用嗎??? and 請問有無odbc連excel的example可參考呢 thx
flyup
資深會員


發表:280
回覆:508
積分:385
註冊:2002-04-15

發送簡訊給我
#16 引用回覆 回覆 發表時間:2003-03-27 12:08:21 IP:61.216.xxx.xxx 未訂閱
相關參考資料: How do I improve the speed of ADOconnection?  http://www.experts-exchange.com/Programming/Programming_Languages/Delphi/Q_20123177.html    Excel to database  http://beta.experts-exchange.com/Programming/Programming_Languages/Delphi/Q_20258936.html        
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#17 引用回覆 回覆 發表時間:2003-03-27 15:25:05 IP:210.3.xxx.xxx 未訂閱
For CSV files, you can make use of the Microsoft Text driver: 1) Open ODBC Data Source Administrator 2) Create the DSN using "Microsoft Text Driver (*.txt; *.csv)" 3) Uncheck "Use Current Directory" 4) Click "Select Directory" and select the folder of the csv files 5) Press "Options>>" 6) Press "Define Format" 7) select the csv file in the list box and the GUI here should explain itself 
系統時間:2024-05-04 9:18:11
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!