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

疑惑!關於開始檔案的方式

答題得分者是:dllee
01453
一般會員


發表:7
回覆:10
積分:3
註冊:2007-08-31

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-08-31 09:17:33 IP:60.248.xxx.xxx 訂閱
各位大大您們好,我是一個BCB的新手,最近在學習如何開啟一個s19檔,但是有一些疑惑,
1.開啟檔案的方式有好幾種,如fopen( );fscanf( );ifstream.open();TStringList;TMemoryStream,甚至是CreateFile( )的方式,我不知道到底這些函式的差異在哪,什麼情況下,要用哪一個才比較適當?
2.當我用CreateFile( )開啟檔案時,可利用GetFileSize( )來得到檔案的大小,但是如果我用TStringList方式開啟,有什麼方法也可以同樣讓我得到檔案的大小呢?
3.TOpenDialog與TOpenTextFileDialog的差異是什麼?如果我是要開啟s19檔或bin檔,是不是用哪一個方式都可以呢?
以上問題我想了好久,也找了許多資料,都還摸不著頭緒,希望各位大大能給我一些幫助,謝謝!
------
不斷學習,才能豐富人生!
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-08-31 14:23:30 IP:220.134.xxx.xxx 訂閱
程式只要可以用就好了,作法有千百萬種,沒有絕對的好或壞,只有個人習慣問題。

1. 開檔的方式, 隨個人高興, 看之後要用什麼方式比較方便就用什麼開, 開得了檔才重要。

2. 使用 TStringList 只能用 LoadFromFile 所有資料都已載入 TStringList 只是在載入的過程 TStringList 已作了處理(0x0,0x0A,0x0D,0x0A0D, 0x0D0A,... 去除作為分Strings的記號), 不一定能得到原始檔案的大小, 只能得到目前載入的資料量大小, 可由 stringList->Text.Length() 得到一個參數的數值,但此數值與檔案大小通常不會一樣,又TStringList載入過程已去除某些資訊,所以無法還原原資料,也不可能得知原檔案大小。如果一定要用 TStringList 讀,又一定要知道原檔有多大,那就只要先用您知道取得檔案大小的方式先取得檔案大小,再用TStringList開檔即可。

3. TOpenDialog 只是讓你選到檔案, 只要選得到檔案, 用什麼元件都可以,不必太在意。

BCB 提供數十/百種的 VCL 元件,寫久了,常用的就那幾個。同一個功能,可以實現的方式也很多種,真的是看個人高興用那一種。
------
http://www.ViewMove.com
01453
一般會員


發表:7
回覆:10
積分:3
註冊:2007-08-31

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-08-31 16:54:22 IP:60.248.xxx.xxx 訂閱
謝謝大大的解答,接下來我會更加努力,BCB要學的東西實在好多!
------
不斷學習,才能豐富人生!
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-08-31 17:54:45 IP:220.134.xxx.xxx 訂閱
元件真的不少,但許多真的是相近或相似的,把一種搞熟就可以了。
像 fopen( );fscanf( );ifstream.open() 這些我記得只在不用 BCB 的 DOS 時代才用的。
在 BCB 內 TFileStream 幾乎可以把想要的檔案操作都作好,已經很久很久沒用 fopen,
fscanf 這類函式了。

按步就班,多作練習,要熟是很快的。真的要學的是邏輯思考,解決問題的方法。

加油囉。
------
http://www.ViewMove.com
系統時間:2024-04-29 8:38:03
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!