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

寫入文字檔問題~

答題得分者是:ccchen
jachi
一般會員


發表:16
回覆:16
積分:11
註冊:2002-09-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-10-02 11:33:40 IP:210.243.xxx.xxx 未訂閱
我將資料庫的資料..依自己所要的格式寫入文字檔 但如果在寫入同時加入跳頁控制到文字檔中呢 又不知跳頁控制碼為何..有那位先進知道否 又..我先將資料..先分別寫入richedit及memo做測試 但因為資料量實在太大..有1百萬筆以上... richedit及 memo..有容量上的限制嗎 因為..資料好像都不能完全寫入 richedit1.lines.add(Data) or memo1.lines.add(Data) Richedit還出現..add lines的例外錯誤.. 是寫不下的原因嗎 如是又要如何解決.. 謝謝..嗚...小弟我功力真是太差了
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-10-02 18:49:48 IP:211.22.xxx.xxx 未訂閱
1.沒聽過 TMemo 或 TRichEdit 有跳頁控制碼 2.為什麼一次將一百萬筆的 record 填到 TMemo 或 TRichEdit?    -- Everything I say is a lie.
aip999
初階會員


發表:10
回覆:63
積分:44
註冊:2002-03-29

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-10-03 02:09:52 IP:218.187.xxx.xxx 未訂閱
引言: 我將資料庫的資料..依自己所要的格式寫入文字檔 但如果在寫入同時加入跳頁控制到文字檔中呢 又不知跳頁控制碼為何..有那位先進知道否 又..我先將資料..先分別寫入richedit及memo做測試 但因為資料量實在太大..有1百萬筆以上... richedit及 memo..有容量上的限制嗎 因為..資料好像都不能完全寫入 richedit1.lines.add(Data) or memo1.lines.add(Data) Richedit還出現..add lines的例外錯誤.. 是寫不下的原因嗎 如是又要如何解決.. 謝謝..嗚...小弟我功力真是太差了
用TFileStream去寫入吧..寫入#13 #10在文字模式時會換行跳頁碼是#16還是多少忘了...你可以用#13 #10 #13 #10 #13 #10 #13 #10 ...去跳行 不過你資料量太大...分開存多個檔處理會比較好
weber
初階會員


發表:24
回覆:56
積分:26
註冊:2002-03-13

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-10-03 12:00:08 IP:61.216.xxx.xxx 未訂閱
寫入文字檔可以用 TextFile AssignFile , Rewrite 後再用 Writeln 即可. 換頁碼沒記錯的話應該是 #12
ccchen
版主


發表:61
回覆:940
積分:1394
註冊:2002-04-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-10-04 08:31:16 IP:61.219.xxx.xxx 未訂閱
1. 可用TextFiel
procedure Tprnform.saveitClick(Sender: TObject);
var
  F:TextFile;
begin
  AssignFile(F,savedialog1.filename);
  Rewrite(F);
  writeln(F, '字串');
  ...
  writeln(F,#12); //page break
  CloseFile(F);
end;
2. 可用TStringlist,無行數限制, create後用法與memo1.lines相同, 但memo1.lines在win98行數有限制
var l:TStringlist;
begin
  l:=TStringlist.create;
  try
     l.add(string);
     ....
     l.savetofile(filename);
  finally
    l.free;
  end;
end;
3. pagebreak為#12
jachi
一般會員


發表:16
回覆:16
積分:11
註冊:2002-09-26

發送簡訊給我
#6 引用回覆 回覆 發表時間:2002-10-05 09:41:34 IP:61.216.xxx.xxx 未訂閱
嗯..跳頁的確是#12或chr(12) 只是..他只能在其他edit軟體列印時可以跳頁 如果讀入至richedit 的話..直接用richedit.print(' ') 是印不出跳頁的效果.. 而放在memo上的話...98真的有容量限制.. 所以我只好先放到richedit再用 TPrinter及richedit.lines.count 再判斷chr(12)來控制印列及跳頁.... 就可以了.... 至於為什麼資料量那麼大..去便利商店看看賣的商品是不是很多.. 一家那麼多商品..那如果600多家都要印貨架內容擺設的資料.. 2百多萬的資料..分六欄..再加上設計格式1筆資料要寫7行.. 資料的確是爆大...(全部店可跑到500多萬行..) 就如前位先進所說的..最好是分檔寫入.. 這個我有做分店別印列檔產生的選單(月底全印時店裡用的) 只是我還有設計讓使用者可以選擇分店範圍來列印(平時單印或採購人員印列用)..目前我是全部只寫到一個文字檔裡 如果分檔的話...是直接去判別產生了那些檔.. 再一一自動載入delphi一次印完.. 還是寫開檔的功能讓使用者去選擇印列檔來印比較好呢 或者連寫檔都不寫了..直接用Tprinter來印列呢.. 各位先進覺得呢..
jachi
一般會員


發表:16
回覆:16
積分:11
註冊:2002-09-26

發送簡訊給我
#7 引用回覆 回覆 發表時間:2002-10-05 09:51:06 IP:61.216.xxx.xxx 未訂閱
再說明一下 為什麼想放到memo或是richedit後再來印 是因為想說至少先讓使用者看到 產生格式後的樣式..再來印 只是資料料太大.. 他所選擇分店範圍越大... 對系統資源的loading就越大.. 真是有點給他不知如何是好... 不過使用者他們也知道...此項作業很花時間 通常產生加列印完成要3天多.. 所以..小弟很希望大家給個意見.. 有結論時..再跟使用者談談.. 總之謝謝大家囉..
系統時間:2024-05-06 2:34:50
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!