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

檢查檔名的函數?

缺席
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-01-30 01:26:52 IP:61.67.xxx.xxx 未訂閱
請問各位:

Delphi中有沒有直接可以檢查我輸入的字串是否符合檔名的函數, 例如我輸入 "abc%^& ", 可以查出不合法, 當然如果我自己要去寫一支判斷也是能寫出來, 只是要花很多判斷, 所以想找找看有沒有這種function可以解決, 目前我使用是memo.savetofile("file") 的方式來處理, 找了好幾本書都看不到, 不知道藏在那裡?
pceyes
尊榮會員


發表:70
回覆:657
積分:1140
註冊:2003-03-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-01-30 06:48:34 IP:220.141.xxx.xxx 訂閱
在下並沒有挑戰的意思, 只是一種想法
您的出發點應是指檔名字串檢查,
如果用反向思考的話, 個人提出的是檔名的產生合法, 就不用檢查了
因此, 如果檔名的產生不是人, 而是由機器,
比如說用亂數產生, 並指定由英(大小寫)數所組成, 只要檔名不重複就好了, 不知會不會比較快。
------
努力會更接近成功
syntax
尊榮會員


發表:26
回覆:1139
積分:1258
註冊:2002-04-23

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-01-30 09:01:54 IP:61.64.xxx.xxx 訂閱
檢查檔案名稱是否合法,用意在?

不就是要存檔嗎?對吧?

什麼時候會檢查檔案名稱?

不就是要存檔時?對吧?

在 save 前多作一次檢查名稱的意義何在?

沒有意義吧!因為在 Windows Save,一定會檢查名稱合不合法,不合法一定會產生錯誤返回的啊

所以你多作一次的用意何在?

可以解釋一下嗎?

===================引 用 P.D. 文 章===================
請問各位:

Delphi中有沒有直接可以檢查我輸入的字串是否符合檔名的函數, 例如我輸入 "abc%^& ", 可以查出不合法, 當然如果我自己要去寫一支判斷也是能寫出來, 只是要花很多判斷, 所以想找找看有沒有這種function可以解決, 目前我使用是memo.savetofile("file") 的方式來處理, 找了好幾本書都看不到, 不知道藏在那裡?
pedro
尊榮會員


發表:152
回覆:1187
積分:892
註冊:2002-06-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-01-30 09:12:14 IP:60.248.xxx.xxx 未訂閱
大概是想在ui層就需引發錯誤?
delphi沒有像linux正規表示法匹配的判斷
取檔名不能含有一些控制字元及特殊符號
用逐字 if Pos(Substr,不能使用的字元)>0 then 不合法檔名
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-01-30 10:47:57 IP:147.8.xxx.xxx 未訂閱
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#6 引用回覆 回覆 發表時間:2008-01-31 20:45:49 IP:61.67.xxx.xxx 未訂閱
乍看之下, 好多回覆以為有答案, 結果好像沒這個東西
解釋一下
我需要一組識別碼, 而這組碼未來是要做為檔名之用的, 但在設定此碼時並還沒有產生檔案, 也就是說, user 可能產生不定量的記錄如下

IDCODE DATA
MYFILE 1
MYFILE 2
MYFILE 3
MYFILE 4
HEFILE 1
HEFILE 3
HEFILE 7

這四個DATA(1,2,3,4)都歸屬於MYFILE這組識別, 之後如果使用者選擇儲存, 我會將1,2,3,4 以MYFILE 為檔名儲存, 而USER 調出MYFILE 檔名, 我可以用檔名做KEY調出資料庫中的 1,2,3,4
這也就是我必須要讓1,2,3,4的IDCODE 要能與檔名符合, 但IDCODE產生在先(由人決定), 但又不一定需要儲存檔案, 所以才會需要先檢查IDCODE是否能符合檔名結構, 上頭我也說了, 我現在是利用 MEMO1.SAVETOFILE(MYFILE)方式檢查, 如果有問題會引發EXCPTION, 我由EXCEPTION來捕捉錯誤, 但我想知道Delphi有沒有直接提供這種function,
所以這並非是無意義的, 而是程式本身流程設計需求
PS.所謂儲存是指將1,2,3,4儲存成一個TXT檔案(舉例), 而不是儲存成記錄, 當然以上的例子是簡單說, 實際的資料並不是這樣簡而已
編輯記錄
P.D. 重新編輯於 2008-01-31 20:50:22, 註解 無‧
syntax
尊榮會員


發表:26
回覆:1139
積分:1258
註冊:2002-04-23

發送簡訊給我
#7 引用回覆 回覆 發表時間:2008-01-31 21:51:27 IP:61.64.xxx.xxx 訂閱
不過就算自己寫,寫起來好像也沒幾行喔!

大不了用 Create File API 去測,再刪掉檔案

反過來若不想真的儲存出檔案,那用 SaveDialog 或 GetSaveFileName 來處理,相信也不是難事

應該是這種函式太簡單,所以沒有真的變成一個函式,以免變得過度模組化吧!因為真的沒幾行

===================引 用 P.D. 文 章===================
乍看之下, 好多回覆以為有答案, 結果好像沒這個東西
解釋一下
我需要一組識別碼, 而這組碼未來是要做為檔名之用的, 但在設定此碼時並還沒有產生檔案, 也就是說, user 可能產生不定量的記錄如下

IDCODE DATA
MYFILE 1
MYFILE 2
MYFILE 3
MYFILE 4
HEFILE 1
HEFILE 3
HEFILE 7

這四個DATA(1,2,3,4)都歸屬於MYFILE這組識別, 之後如果使用者選擇儲存, 我會將1,2,3,4 以MYFILE 為檔名儲存, 而USER 調出MYFILE 檔名, 我可以用檔名做KEY調出資料庫中的 1,2,3,4
這也就是我必須要讓1,2,3,4的IDCODE 要能與檔名符合, 但IDCODE產生在先(由人決定), 但又不一定需要儲存檔案, 所以才會需要先檢查IDCODE是否能符合檔名結構, 上頭我也說了, 我現在是利用 MEMO1.SAVETOFILE(MYFILE)方式檢查, 如果有問題會引發EXCPTION, 我由EXCEPTION來捕捉錯誤, 但我想知道Delphi有沒有直接提供這種function,
所以這並非是無意義的, 而是程式本身流程設計需求
PS.所謂儲存是指將1,2,3,4儲存成一個TXT檔案(舉例), 而不是儲存成記錄, 當然以上的例子是簡單說, 實際的資料並不是這樣簡而已
編輯記錄
syntax 重新編輯於 2008-01-31 22:03:03, 註解 無‧
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#8 引用回覆 回覆 發表時間:2008-02-01 01:54:20 IP:61.67.xxx.xxx 未訂閱
感謝各位協助, 看來是沒有, 那我還是用TMemo方式做, 謝謝!
系統時間:2024-04-30 12:57:21
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!