求助!!如何實現文件的查找及替換功能 |
答題得分者是:RedSnow
|
cimgg
一般會員 發表:21 回覆:30 積分:10 註冊:2005-05-10 發送簡訊給我 |
|
RedSnow
版主 發表:79 回覆:1322 積分:845 註冊:2003-12-15 發送簡訊給我 |
cimgg 您好: 搜尋檔案的功能可參考這個範例: http://delphi.ktop.com.tw/topic.php?TOPIC_ID=45063 至於要在項目前方加上 CheckBox,可將範例內的 ListView 物件的 Checkboxes 屬性設為 true 即可,剩下的替換動作就交給您自己來處理囉。
|
cimgg
一般會員 發表:21 回覆:30 積分:10 註冊:2005-05-10 發送簡訊給我 |
|
RedSnow
版主 發表:79 回覆:1322 積分:845 註冊:2003-12-15 發送簡訊給我 |
cimgg 您好:
引言:希望用一個指定的文件替換查找齣來的文件,那是應該先將這些文件刪除,再復製進去,還是用其他什么棒法,如果是的話,那由于這些文件的目錄都不一樣,怎么記憶這些路徑纔是最可靠的關於第一個問題,您無需分別作刪除與複製的動作,可以使用像是 CopyFile() 或 CopyFileTo() 這樣的函式來直接複製檔案,不過還是要請您看清楚文件說明,正確的設定旗號 (Flag) 參數,同時也要加上容錯處理 (比如檔案被鎖住無法刪除....等),以免處理結果不符合所需。 關於第二個問題,您可以在搜尋到檔案,並紀錄檔案名稱等資料到 ListView 的當時,將檔案所在路徑一併記錄到 ListView 的 SubItem 內 (增加一個 Column),這樣子應該很可靠的。 |
cimgg
一般會員 發表:21 回覆:30 積分:10 註冊:2005-05-10 發送簡訊給我 |
|
cimgg
一般會員 發表:21 回覆:30 積分:10 註冊:2005-05-10 發送簡訊給我 |
|
RedSnow
版主 發表:79 回覆:1322 積分:845 註冊:2003-12-15 發送簡訊給我 |
|
cimgg
一般會員 發表:21 回覆:30 積分:10 註冊:2005-05-10 發送簡訊給我 |
|
RedSnow
版主 發表:79 回覆:1322 積分:845 註冊:2003-12-15 發送簡訊給我 |
CopyFile() 的用法很簡單,請看下列範例與說明:
AnsiString ExistingFile = "newfile.txt"; AnsiString NewFile = "oldfile.txt"; CopyFile(ExistingFile.c_str(), NewFile.c_str(), false);上例中的動作會將 newfile.txt 覆蓋掉 oldfile.txt,動作執行完畢後,oldfile.txt 檔案名稱不變,內容會與 newfile.txt 相同。 第一個參數是設定準備複製的檔案,也就是準備要拿來覆蓋掉其它檔案的那個檔案。 第二個參數是設定要被覆蓋掉的檔案名稱。 第三個參數設為 true 時,與第二個參數同名的檔案存在時,不進行複製動作,若設為 false,則進行複製,以您描述的需求來看,第三個參數應該設為 false。 |
cimgg
一般會員 發表:21 回覆:30 積分:10 註冊:2005-05-10 發送簡訊給我 |
|
cimgg
一般會員 發表:21 回覆:30 積分:10 註冊:2005-05-10 發送簡訊給我 |
請問redsnow大大,我該如何錶述被選中的items(checked)請幫忙看看以下代碼:
AnsiString FileName;
OpenDialog1->Title="Copy Files";
if(OpenDialog1->Execute())
{
FileExists(OpenDialog1->FileName);
FileName=OpenDialog1->FileName;
}
while(ListView1->Selected)
{
// File path must be "double Null terminated", so we add '\0' at the end.
if(ListView1->Checkboxes)
{
ListView1->Items->BeginUpdate();
for(int i=0;i
|
cimgg
一般會員 發表:21 回覆:30 積分:10 註冊:2005-05-10 發送簡訊給我 |
|
RedSnow
版主 發表:79 回覆:1322 積分:845 註冊:2003-12-15 發送簡訊給我 |
您那段程序確實錯誤很多,我將其修改如下,您參考一下:
OpenDialog1->Title = "Copy Files"; if (OpenDialog1->Execute()) { AnsiString FileName = OpenDialog1->FileName; if (FileExists(FileName)) { ListView1->Items->BeginUpdate(); for (int i=0; i以紅字標示的數字部分您必須修改成您自己存放檔案路徑與名稱的次項目編號。 發表人 - RedSnow 於 2005/05/19 21:28:50 |
cimgg
一般會員 發表:21 回覆:30 積分:10 註冊:2005-05-10 發送簡訊給我 |
|
cimgg
一般會員 發表:21 回覆:30 積分:10 註冊:2005-05-10 發送簡訊給我 |
|
cimgg
一般會員 發表:21 回覆:30 積分:10 註冊:2005-05-10 發送簡訊給我 |
RedSnow 大大
您看看我这段代码有什么问题,为什么执行的时候会不能正确得到我想要的结果。我希望的是能用一个指定的档案将一个或多个文档替换掉,并且替换以后的文件名等与指定的文件是一致的,而且好像不会动态更新。可是我得到的却是下面的结果,代码如下:
OpenDialog1->Title = "Copy Files";
AnsiString str;
if (OpenDialog1->Execute()){
AnsiString FileName = OpenDialog1->FileName;
if (FileExists(FileName)){
ListView1->Items->BeginUpdate();
for (int i=0; i
|
RedSnow
版主 發表:79 回覆:1322 積分:845 註冊:2003-12-15 發送簡訊給我 |
|
cimgg
一般會員 發表:21 回覆:30 積分:10 註冊:2005-05-10 發送簡訊給我 |
|
cimgg
一般會員 發表:21 回覆:30 積分:10 註冊:2005-05-10 發送簡訊給我 |
|
RedSnow
版主 發表:79 回覆:1322 積分:845 註冊:2003-12-15 發送簡訊給我 |
我還是沒辦法看到您貼上來的圖,就連您寫的字樣都是亂碼,無法看懂....,在這種狀況下,我真的不知道該如何幫您找出錯誤? 如果方便的話,您乾脆就將您的程式整個打包上傳到 "會員求助程式檔案上傳區",然後描述一下您的操作步驟,我將程式下載來測試一下,應該能很快就找出問題的,上傳的方式如下:
1. 點選下列連結:
http://delphi.ktop.com.tw/post.asp?method=Topic&FORUM_ID=97&CAT_ID=31&Forum_Title=%B7%7C%AD%FB%A8D%A7U%B5%7B%A6%A1%C0%C9%AE%D7%A4W%B6%C7%B0%CF 2. 找到畫面上標示著 "上傳檔案:" 字樣的地方,然後點選其右方標示著 "瀏覽..." 字樣的按紐。 3. 使用一般我們開啟檔案的操作方式來找您電腦上的檔案,點選欲上傳的檔案後點擊選檔視窗上的 "開啟" 按紐。 4. 記得圈選主題分類、程式語言項目的內容,並在主題欄內填上適當文字。 5. 往下找到標示著 "存入新主題" 的按鈕,點擊該按鈕即可。
以上是上傳步驟的簡述,請您仔細瀏覽上傳頁面上的各個項目與標示,以確保我上述的簡述沒有遺漏重要步驟。
|
cimgg
一般會員 發表:21 回覆:30 積分:10 註冊:2005-05-10 發送簡訊給我 |
|
RedSnow
版主 發表:79 回覆:1322 積分:845 註冊:2003-12-15 發送簡訊給我 |
我已經將檔案下載了,但是我使用的是 BCB4,再加上您使用的是簡體中文,因此我無法直接載入測試,我必須用手工方式做些修改與調整後,才能進行測試,目前我將部份簡體中文的部份改成英文與繁體中文,並且另行建立一個專案檔 (.bpr) 之後,現在可以載入檔案了,但仍然無法進行測試,因為下列原因:
1. 您在程式中使用到 MatchesMask() 這個函式,但是我的 BCB4 沒有該檔,之前我在作其他檔案的測試時就已經發現這個問題,我看您是不是試著搜尋一下您的 BCB 目錄,將所有以 Masks.* 為名稱的檔案都上傳一份給我,我看看可否套用到 BCB4 來使用? 2. 您尚未告知您的測試步驟,也就是您在執行程式之後,是進行著什麼樣的操作程序?並且預期的是何種結果?
|
cimgg
一般會員 發表:21 回覆:30 積分:10 註冊:2005-05-10 發送簡訊給我 |
|
RedSnow
版主 發表:79 回覆:1322 積分:845 註冊:2003-12-15 發送簡訊給我 |
|
cimgg
一般會員 發表:21 回覆:30 積分:10 註冊:2005-05-10 發送簡訊給我 |
|
cimgg
一般會員 發表:21 回覆:30 積分:10 註冊:2005-05-10 發送簡訊給我 |
|
RedSnow
版主 發表:79 回覆:1322 積分:845 註冊:2003-12-15 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |