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

想要用BCB元件存19萬筆AnsiString資料,如何突破int之65535筆之限制

尚未結案
wuhamktop
一般會員


發表:5
回覆:6
積分:2
註冊:2005-02-27

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-02-27 22:47:24 IP:221.169.xxx.xxx 未訂閱
自己寫了一個數據分析的軟體:   為節省coding時間與寫排序的麻煩,   本來使用TStringList可以執行,   但一但遇到19萬筆資料(超過65535之index為整數之限制),   程式變得無法動(類似當機),    請問各位帥哥如何解決?
------
1234
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-02-27 23:12:43 IP:219.84.xxx.xxx 未訂閱
引言: 自己寫了一個數據分析的軟體: 為節省coding時間與寫排序的麻煩, 本來使用TStringList可以執行, 但一但遇到19萬筆資料(超過65535之index為整數之限制), 程式變得無法動(類似當機), 請問各位帥哥如何解決? >< face="Verdana, Arial, Helvetica">
wuhamktop 你好:
如果你的資料量這麼大的話,建議你改用資料庫 (Access, SQL Server...等),
醬子可以省去很多的麻煩
    < src="http://delphi.ktop.com.tw/loadfile.php?TOPICID=10003806&CC=223734"> -- Enjoy Researching & Developing --    發表人 - RaynorPao 於 2005/02/27  23:28:56
        
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
wuhamktop
一般會員


發表:5
回覆:6
積分:2
註冊:2005-02-27

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-02-28 00:00:04 IP:221.169.xxx.xxx 未訂閱
因為我的軟體並不是要開發商用資料庫類之程式, 而僅僅是讓自己的工作更方便,我的問題應該重述為 : 1.BCB是否有任何元件?  =>  可以紀錄超過int值域之筆數之文數資料 2.如果沒有,如何繼承修改?  =>  如何繼承它的index改為unsigned long    3.如果再不可行的話 => 只好乖乖的重新翻寫 謝謝包子哥!!!!!
------
1234
暗黑破壞神
版主


發表:9
回覆:2301
積分:1627
註冊:2004-10-04

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-02-28 00:44:14 IP:203.69.xxx.xxx 未訂閱
引言: 自己寫了一個數據分析的軟體: 為節省coding時間與寫排序的麻煩, 本來使用TStringList可以執行, 但一但遇到19萬筆資料(超過65535之index為整數之限制), 程式變得無法動(類似當機),
不對喔就算是整數int的範圍已經由 65535 擴充到 2^32 -1 了喔。 因為妳用的是 32 位元。已經不再是 16 位元。 而且。65535 的”整數”宣告上叫做 short。 所以。目前為止 unsigned long = unsigned int 所以你要做的動作。問題應在 TStringList 的問題。 如果你的資料夠整齊。你可以把它倒入記憶體中。然後呼叫一下QSORT。 也許就解決了。 因為妳不想動到資料庫。 不然,架個MySQL把資料倒入去。幾句SQL也可以做到排序。^_^
wuhamktop
一般會員


發表:5
回覆:6
積分:2
註冊:2005-02-27

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-02-28 01:07:23 IP:221.169.xxx.xxx 未訂閱
如果資料只是如下: ABC,100,250 DEF,150,300 TXD,050,020 ..... 請問要如何倒入記憶體中 ? 又要如何QSORT ? 可不可以幫我寫出代表性關鍵程式(10行內) 我再去查HELP. 謝謝包子哥!!!!! 1234
------
1234
暗黑破壞神
版主


發表:9
回覆:2301
積分:1627
註冊:2004-10-04

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-02-28 01:16:25 IP:203.69.xxx.xxx 未訂閱
#include 
#include 
#include     int sort_function( const void *a, const void *b);
char list[5][4] = { "cat", "car", "cab", "cap", "can" };    int main(void)
{
   int  x;       qsort((void *)list, 5, sizeof(list[0]), sort_function);
   for (x = 0; x < 5; x  )
      printf("%s\n", list[x]);
   return 0;
}    int sort_function( const void *a, const void *b)
{
   return( strcmp((char *)a,(char *)b) );
}
以上為 BCB 的 QSORT 的HELP。 所謂的倒入記憶體,就是要你把它讀入MEM中。 或另外,我不是包子。@.@ 我是每天被人打也在打人的暗黑破壞神。^_^
wuhamktop
一般會員


發表:5
回覆:6
積分:2
註冊:2005-02-27

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-02-28 01:24:36 IP:221.169.xxx.xxx 未訂閱
啊 ! 粗心大意真不好意思< > 謝謝暗黑破壞神< > 1234
------
1234
系統時間:2024-05-19 17:22:01
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!