如何獲取制定文件的格式(擴展名) |
答題得分者是:bigdogchina
|
cxg
中階會員 發表:116 回覆:192 積分:76 註冊:2004-02-12 發送簡訊給我 |
|
bigdogchina
版主 發表:238 回覆:523 積分:312 註冊:2003-04-28 發送簡訊給我 |
Hi,cxg,您好!
procedure TForm1.Button1Click(Sender: TObject); var sExtName: String; begin if OpenDialog1.Execute then begin sExtName := ExtractFileExt(OpenDialog1.FileName); sExtName := Copy(sExtName,2,3); ShowMessage(sExtName); end; end;這樣可以得到一個文件的副檔名!您說的是想得到修改後的,比如1.txt我把它改爲1.doc,然後再用code來得到副檔名(doc)嗎? =============== 人生在勤,不索何获? ===============
------
人生在勤,不索何获? |
cxg
中階會員 發表:116 回覆:192 積分:76 註冊:2004-02-12 發送簡訊給我 |
引言: Hi,cxg,您好!修改之前的擴展名procedure TForm1.Button1Click(Sender: TObject); var sExtName: String; begin if OpenDialog1.Execute then begin sExtName := ExtractFileExt(OpenDialog1.FileName); sExtName := Copy(sExtName,2,3); ShowMessage(sExtName); end; end;這樣可以得到一個文件的副檔名!您說的是想得到修改後的,比如1.txt我把它改爲1.doc,然後再用code來得到副檔名(doc)嗎?=============== 人生在勤,不索何获? =============== |
bigdogchina
版主 發表:238 回覆:523 積分:312 註冊:2003-04-28 發送簡訊給我 |
cxg,您好!
當副檔名被修改後,整個文件的打開方式都會變化,但是文件裏的資料結構是不會變化的,那就需要您讀入該文件的資料,然後再根據已知的資料結構去判斷。比如對於一個有圖像的bmp文件,用UltraEdit打開看看,切換到16進制,發現頭兩位元結構是固定的: 可以看見0~1位是:"42 4D",這是一般bmp文件的保留標誌"BM";而2~5位是"36 00 24 00"的計算結果是"00240036"剛好是該bmp文件的大小2359345位元組,也就是2.3MB;6~9位"00 00 00 00"是系統保留,後面的"00 36"和"00 28"則代表偏移地址和BitmapHeader的大小。
我舉這個例子是想說您需要根據文件的資料結構去檢查到底是什麽文件(但是當文件是空資料時那這種方法也不行) 如果沒有特殊要求,只是想知道一個文件在沒有修改前副檔名是什麽,您可以在副檔名沒有修改前去獲得然後保存下來啊!(我這句話好象說了等於沒有說) < class="code">
===============
人生在勤,不索何获?
===============
------
人生在勤,不索何获? |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |