在Delphi中定位檔案位置

2021-04-27 17:43:50 字數 1872 閱讀 3116

在delphi中,定位檔案的操作主要有兩種方法。一種是直接定位檔案,即通過「開啟」對話方塊(opendialog)控制項來實現。另一種是只定位到資料夾,然後再在此資料夾內尋找檔案,這種定位方法是利用delphi提供的selectdirectory函式。這個函式是在filectrl單元中定義的,因此在使用時不要忘記在uses中加入單元名。 

下面就以乙個例子來說明這兩種方法在delphi中的具體實現: 

首先建立乙個新的工程,然後在窗體上加入兩個按鈕控制項、乙個「開啟」對話方塊,再加入兩個標籤控制項作為兩種實現結果的儲存控制項。 

各個控制項的主要屬性設定如下: 

button1中: 

caption='直接定位檔案' 

button2中: 

caption='定位到資料夾' 

opendialog1中: 

filter= '所有檔案(*.*)|*.*|' 

+'文字檔案(*.txt)|*.txt|' 

+'應用程式(*.exe,*.com)|*.exe;*.com' 

filterindex=1 

下面是實現的具體程式**: 

unit filelocateunit1; 

inte***ce 

uses 

……,filectrl; 

type 

tform1 = class(tform) 

button1: tbutton; 

…… implementation 

//直接定位到檔案的實現** 

procedure tform1.button1click(sender: tobject); 

begin 

opendialog1.execute; 

//執行「開啟」檔案對話方塊 

label1.caption:=opendialog1.filename; 

//將返回的結果值傳遞給控制項label1 

//要注意,只有當使用者選擇了乙個檔案並且按了「確定」按鈕後才能返回此結果。 

label1.refresh; 

end; 

//定位到資料夾的實現** 

procedure tform1.button2click(sender: tobject); 

var 

strcaption,strdirectory:string; 

wstrroot:widestring; 

begin 

strcaption:='這是瀏覽資料夾的說明文字,可以根據需要進行書寫。' 

+#13#10+'一般二行文字就滿了。'; 

//該引數是瀏覽資料夾視窗的顯示說明部分 

wstrroot:=''; 

//這個引數表示所顯示的瀏覽資料夾視窗中的根目錄,預設或空表示「我的電腦」。 

selectdirectory(strcaption,wstrroot,strdirectory); 

label2.caption:=strdirectory; 

//傳遞結果,其中引數strdirectory表示函式的返回值 

label2.refresh; 

end; 

end. 

按f9編譯執行上面的**。 

從兩種方法的比較來看,如果想讓使用者直觀地選擇檔案,我們可以使用「開啟」對話方塊控制項;如果只想定位到資料夾,或者想將程式訪問的檔案對使用者保密,我們應選擇函式selectdirectory作為實現的手段。 

另外,如果想限制使用者定位檔案的許可權,最好使用函式selectdirectory來實現,因為它通過使用root引數限定了根目錄的位置,並且不能再向上返回。圖2是限定根目錄為c:/program files/borland/delphi5的情況,這樣就可以更好地避免使用者誤操作,而使用「開啟」對話方塊控制項則不能實現這一要求。

在檔案中的指定位置寫入資料

筆者的應用場景 將影象指定區域的畫素值按其空間位置寫到 txt 檔案中。int hang 4 矩陣行數 int lie 8 矩陣列數 先在txt檔案中構造乙個空矩陣,然後向該矩陣中指定行列寫入個位數 intmain10 for int i 1 i hang i fclose filp while 1...

使用sed在檔案指定位置插入文字

在檔案的第二行插入一行文字 sed i 2 i 一行文字 my1.txt sed i 2i a new line my1.txt在檔案的最後一行新增一行文字 sed i a 一行文字 my2.txt sed i a a new line my2.txt在檔案匹配的模式行後新增一行文字 r 支援正規表...

在指定位置插入字元

下列給定程式中,函式fun的功能是 在形參s所指字串中尋找與引數c相同的字元,並在其後插入乙個與之相同的字元,若找不到相同的字元則不做任何處理。例如,若s所指字串為 baacda c中的字元為a,執行後s所指字串為 baaaacdaa 請在程式的下畫線處填入正確的內容並將下畫線刪除,使程式得出正確的...