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

如何獲取制定文件的格式(擴展名)

答題得分者是:bigdogchina
cxg
中階會員


發表:116
回覆:192
積分:76
註冊:2004-02-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-05-12 17:42:13 IP:61.51.xxx.xxx 未訂閱
儅一個文件的擴展名被修改后怎樣獲取修改之前的擴展名。
bigdogchina
版主


發表:238
回覆:523
積分:312
註冊:2003-04-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-05-13 11:05:44 IP:211.162.xxx.xxx 未訂閱
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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-05-17 13:32:33 IP:221.218.xxx.xxx 未訂閱
引言: 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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-05-17 22:05:25 IP:211.162.xxx.xxx 未訂閱
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"> =============== 人生在勤,不索何获? ===============
------
人生在勤,不索何获?
系統時間:2024-05-19 10:00:52
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!