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

同時使用 open() 開啟大量檔案

尚未結案
0936187122
一般會員


發表:8
回覆:7
積分:3
註冊:2004-03-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-10-07 18:36:57 IP:220.130.xxx.xxx 未訂閱
在一個目錄下有大量的檔案(超過2000個), 使用 open() 去開啟, 但開啟到45個就無法再開啟了, 以前在 dos 可以在 config.sys 加入 FILES=xxxx 來解決, 但我在 2000&xp 中這個方法並無法 解決 (因需要, 檔案必需同時開啟)
andychang1690
資深會員


發表:20
回覆:694
積分:442
註冊:2003-03-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-10-07 22:22:50 IP:221.169.xxx.xxx 未訂閱
0936187122:對不起,DOS離我久了一點,但我不太理解 dos 可以在 config.sys加入 FILES=xxxx 來解決 一個目錄下有大量的檔案(超過2000個)的開檔問題? DOS是單工,Windows是multitasking。 (因需要, 檔案必需同時開啟)不見得是解決使用者問題的方式! 我最常碰到使用者執行ERP,加十幾個Excel檔再加上MSN還有音樂軟體當然 Outlook不能忘,接著全螢幕玩Game,天啊!Files再大也不夠! 使用者要怎麼給他就好,我不太相信有使用者會需要超過20個檔案的資料! 如有!利用windows搜尋內容也應該可以。我比較有興趣是使用者需要開啟 那麼多檔案嗎? 沒其他意思!只是我好奇!DOS能開啟那麼多檔案? Andy Chang
------
Andy Chang
0936187122
一般會員


發表:8
回覆:7
積分:3
註冊:2004-03-23

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-10-08 11:42:30 IP:220.130.xxx.xxx 未訂閱
@@ 因為有些系統(如即時報價系統,即時監控系統), 他們會使用 檔案的方式去存放資料而不使用資料庫, 而且這些檔案隨時都會 有資料進來, 為求即時反應, 我的程式會定時去檢查是否有資料 進來, 故需要全部都打開(如果採用1開1關的方式那麼多檔案,在 效率上會有問題) 我的問題是:以前在dos或win98下可以用 config.sys 加入FILES=XXX 的方式解決(win2000MSDN也是教我們這樣做的), 但實務上我試了 有問題, 不知我遺漏那個部份, 導致程式無法正確執行, 不知是 否有人有相關經驗可以交流, 謝謝囉 ps:我在dos下開過90 個檔案(你用過clipper就知了, 50個以上 的檔案是常有的事)
暗黑破壞神
版主


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-10-08 15:14:26 IP:221.169.xxx.xxx 未訂閱
在 bcc3.1那個年代。還要去改一個檔案。才可以開20個檔案以上。 到了現在。因為沒開過那麼多檔。沒去注意它了。要改它。必須全裝所有的SOURCE CODE才可以找到。 如果說有2000個檔。那檔案大嗎? 如果不大。何不把它丟進一個資料庫去處理呢? 山不轉路轉。路不轉人轉。^_^ 把它們變成一個大檔。就破除這個限制了啊。
0936187122
一般會員


發表:8
回覆:7
積分:3
註冊:2004-03-23

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-10-09 12:23:40 IP:61.59.xxx.xxx 未訂閱
不是我不繞路, 那是因為這是別人現有的系統, 對方 已經並不提供別的方式讓我讀取資料, 也沒人力去修 改他們現有的架構, 故我必需同時開啟這些檔案來逹 到要求. 我暫時找到一個解決方法, 但仍然想用軟體的方式來 解決問題.(我將檔案用一開一關的方式來處理, 但這 是將原來的硬碟用 disk array 來替代, 用 timer 定時來 scan 檔案大小有異動的檔案, 檔案數量為1975個) 謝謝 "暗黑破壞神" 提供的方向, 我會著手去試試. ps:謝謝大家提供別的替代意見, 就算用別的方法解決 了我目前的問題, 我仍想知道如何同時開啟大量的檔案
暗黑破壞神
版主


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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-10-09 14:40:45 IP:221.169.xxx.xxx 未訂閱
.(我將檔案用一開一關的方式來處理, 但這 是將原來的硬碟用 disk array 來替代, 用 timer 定時來 scan 檔案大小有異動的檔案, 檔案數量為1975個) 如果你是要這樣做的話。只要做個像 dir 這樣的東東。然後跟上一次的 dir 做比較就可以了。 不必一開一關那麼多檔。 先 dir > file.1 after 1 sec dir > file.2 然後比對其內的 size field 就可以做到你說的動作了。 雖然會變成 m -> n 的比對。可是這個都是 memory 的動作。 比起你用 disk io 來說會快很多。 加油。^_^
系統時間:2024-06-28 4:41:15
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!