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

请教关于程序需要调用的外部文件封装的问题

尚未結案
igriver
一般會員


發表:16
回覆:12
積分:5
註冊:2004-11-07

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-11-08 21:28:46 IP:222.90.xxx.xxx 未訂閱
我的一个程序需要调用外部文档(*.pdf *.txt 等),现在想把这些文件封装成一个或多个自定义格式的文件,而且仍然能够访问。 请问如何实现啊,多谢先。
wameng
版主


發表:31
回覆:1336
積分:1188
註冊:2004-09-16

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-11-08 21:52:06 IP:61.222.xxx.xxx 未訂閱
1. 用 TFileStream 將文件合併。 2. 在 HKEY_CLASSES_ROOT 定義自訂的文件格式。 Command 用來指定自己寫好的程序。 如: @="C:\\Project1.exe \"%1\"" 3. 程序打開此文件,並分割還原。 文件的合併與還原,網路上資料頗多。 自己斟酌參考吧!
igriver
一般會員


發表:16
回覆:12
積分:5
註冊:2004-11-07

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-11-08 22:15:57 IP:222.90.xxx.xxx 未訂閱
版主回复的好快,小弟感激不尽。 可是小弟愚笨至极,还未领会到精髓所在,望版主不吝赐教。
wameng
版主


發表:31
回覆:1336
積分:1188
註冊:2004-09-16

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-11-08 23:23:24 IP:61.222.xxx.xxx 未訂閱
1. 我們可以用二進制方式讀寫文件,利用 TfileStream。 2. 首先先建立一格式如下:
   | 字串50 b| LongWord |
    --------- ---------- --------------- 
   | 文件名稱| 文件大小 |-該文件內容 ...|    因此 字串 (50 bytes)   LongWord(4 Bytes)  文件大小 
再加一就是下一個文件的起始位置。
這樣瞭解我的用意嗎! 3. 當然也可以利用別種方式。如壓縮檔。 利用 VCLZIP 控件,將多個文件壓縮為一個檔案。 並指定副檔名。 開啟時,在解壓縮到系統的暫存文件夾中 一個個讀取。
igriver
一般會員


發表:16
回覆:12
積分:5
註冊:2004-11-07

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-11-09 12:46:13 IP:222.90.xxx.xxx 未訂閱
多谢版主大大的解答,小弟受益非浅。 但是昨天想了一下,我的资源文件PDF等文件有的会很大,如果多了的话采用这种方式会不会读取速度很慢? 其实如果做到程式和数据安装之后,让用户不能访问资源数据文件夹,但是程序却可以正常访问。这样又有什么好的办法?
wameng
版主


發表:31
回覆:1336
積分:1188
註冊:2004-09-16

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-11-09 14:54:11 IP:61.222.xxx.xxx 未訂閱
引言: 多谢版主大大的解答,小弟受益非浅。 但是昨天想了一下,我的资源文件PDF等文件有的会很大,如果多了的话采用这种方式会不会读取速度很慢? 其实如果做到程式和数据安装之后,让用户不能访问资源数据文件夹,但是程序却可以正常访问。这样又有什么好的办法?
當然如果文件量多,又無索引機制。讀取特定的文件,可能速度就比較慢。 一般而言,是不會慢到受不了的階段。主要是 FileStream 是直接對文件操作。 若要使用數據庫,建議用 Access (*.mdb) 。設定密碼。 可以另外定義副檔名,以迷惑使用者不能直接開啟。
系統時間:2024-06-29 15:39:21
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!