ParamStr 使用釋義

2021-06-04 20:19:04 字數 1690 閱讀 1692

paramstr的用處就是幫你把接收到的命令中的引數識別分離出來,好讓你針對引數進行程式設計。

paramstr        //全部字串  

paramcount   //命令列引數個數  

paramstr(i)    //第幾個引數;注意:paramstr(0)是執行的程式名稱(包括全路徑)

delphi 在啟動應用程式時與 c 語言一樣會傳遞命令列引數給應用程式,第乙個引數(索引號為零)表示應用程式本身的檔名(包括完整的路徑),這個 string 引數由函式 paramstr(0) 返回。

順便說一句,delphi 提供了分析檔名的多個函式,如果你需要從檔名中得到路徑名,可用下面的兩個函式,這兩個函式有一點點微小的差別:

extractfilepath(filename:string) 該函式返回路徑名,其結尾字元總是「\」

extractfiledir(filename:string) 該函式同樣返回路徑名,但不包括結尾的字元「\」,除非返回的路徑是根目錄。

例如:獲取當前程式的路徑時就應該這樣寫

var   

spath: string;

spath := extractfilepath(paramstr(0)); //extractfilepath函式需要引入sysutils單元

如果呼叫同一目錄下的aa.ini檔案,就應該這樣寫

inifilename: string;

inifilename := spath + 'aa.ini';

怎樣獲取程式的命令列引數

方法1:首先,也許是最簡單的方法是呼叫vcl paramstr()函式。你可使用paramcount()函式來確定到底有多少個命令列引數傳遞給了應用程式。

paramstr需要乙個整數引數並且返回乙個ansistring物件。若引數為0, paramstr 將返回可執行檔案的全稱路徑。若引數為1,將返回程式名及第乙個命令列引數。若引數為2,將返回第二個引數,等等。作為乙個實踐,開啟乙個新的專案,在主視窗上放置5個label,將下面的**新增到視窗的建構函式中:

label1->caption = paramstr(0);

label2->caption = paramstr(1);

label3->caption = paramstr(2);

label4->caption = paramstr(3);

label5->caption = paramstr(4);

再執行程式。一般應能看到類似字串: e:\cbuilder\projects\project1.exe如果沒傳遞引數到程式,那麼label2到label5是空字串。關閉程式,從c++builder選單中選擇 run | parameters。輸入幾個引數(-debug -testing -param)再次執行程式。你將看到: e:\cbuilder\projects\project1.exe

-debug

-testing

-param

技巧2:第二個方法就是呼叫getcommandline api函式。getcommandline不需要引數,並且返回乙個c風格的char *,包含全部的命令列引數。你將不得不分解字串以取得相關引數。

label5->caption = ansistring(getcommandline());執行後,label5將為: "e:\cbuilder\projects\project1.exe" -debug -testing -param

cron表示式簡單釋義 使用

秒 分鐘小時天月 星期年份 0 59 0 59 0 23 0 29.30.31 考慮月份 0 11 1 7 1 sun 或 sun,mon,tue,wed,thu,fri,sat 1970 2099 其中每個元素可以是乙個值 如6 乙個連續區間 9 12 乙個間隔時間 8 18 4 表示每隔4小時 ...

虛函式釋義

從本月開始msdn webcast將開始乙個名為 windows embedded開發從入門到精通 的系列課程,主要針對的人群是 windows應用開發者 其他嵌入式平台開發者 如linux arm等 和想學習嵌入式開發的人士。這個系列課程將由淺入深,介紹微軟windows embedded產品線 ...

虛函式釋義

最近似乎在手機上a rpg遊戲很受歡迎,當然,我最近也在幫公司寫一款a rpg類的遊戲。以前從沒寫過這樣的遊戲,從有到無的寫出來了。也碰到不少問題,包括螢幕滾動時地圖title陣列索引的校驗 整個遊戲框架的搭建 地圖資料的處理 分層的處理 主角技能的處理 碰狀檢測。這些問題有空我會做為小專題乙個乙個...