WritePrivateProfileString

WritePrivateProfileString函式名稱,多用於VB、VC中使用,函式聲明:Private Declare Function WritePrivateProfileString& Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As String, ByVal lpFileName As String)

基本介紹

  • 外文名:WritePrivateProfileString
  • 通用:WritePrivateProfileString
  • 說明:初始化檔案指定小節設定一個字串
  • 參數:lpApplicationName
VB中的使用,VC中的使用,將信息寫入.INI檔案中,將信息從INI檔案中讀入程式中的變數,循環寫入/讀出多個值,補充信息,

VB中的使用

所有版本通用:WritePrivateProfileString(lpApplicationName, lpKeyName, lpString, lpFileName)
VB聲明
Private Declare Function WritePrivateProfileString& Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As String, ByVal lpFileName As String)
說明
在初始化檔案指定小節內設定一個字串
返回值
Long,非零表示成功,零表示失敗。會設定GetLastError
參數表
參數
類型及說明
lpApplicationName
String,要在其中寫入新字串的小節名稱。這個字串不區分大小寫
lpKeyName
Any,要設定的項名或條目名。這個字串不區分大小寫。用vbNullString可刪除這個小節的所有設定項
lpString
String,指定為這個項寫入的字串值。用vbNullString表示刪除這個項現有的字串
lpFileName
String,初始化檔案的名字。如果沒有指定完整路徑名,則windows會在windows目錄查找檔案。如果檔案沒有找到,則函式會創建它
相關函式:GetPrivateProfileString

VC中的使用

在我們寫的程式當中,總有一些配置信息需要保存下來,以便完成程式的功能,最簡單的辦法就是將這些信息寫入INI檔案中,程式初始化時再讀入.具體套用如下:

將信息寫入.INI檔案中

1.所用的WINAPI函式原型為:
BOOL WritePrivateProfileString(
LPCTSTR lpAppName,
LPCTSTR lpKeyName,
LPCTSTR lpString,
LPCTSTR lpFileName
);
其中各參數的意義
LPCTSTR lpAppName 是INI檔案中的一個欄位名.
LPCTSTR lpKeyName 是lpAppName下的一個鍵名,通俗講就是變數名.
LPCTSTR lpString 是鍵值,也就是變數的值,不過必須為LPCTSTR型或CString型的.
LPCTSTR lpFileName 是完整的INI檔案名稱,如果沒有指定完整路徑名,則會在windows目錄(默認)查找檔案。如果檔案沒有找到,則函式會在windows目錄創建它。
2.具體使用方法:設現有一名學生,需把他的姓名和年齡寫入 c:\stud\student.ini 檔案中.
CString strName,strTemp;
int nAge;
strName="張三";
nAge=12;
::WritePrivateProfileString("StudentInfo","Name",strName,"c:\\stud\\student.ini");
此時c:\stud\student.ini檔案中的內容如下:
[StudentInfo]
Name=張三
3.要將學生的年齡保存下來,只需將整型的值變為字元型即可:
strTemp.Format("%d",nAge);
::WritePrivateProfileString("StudentInfo","Age",strTemp,"c:\\stud\\student.ini");

將信息從INI檔案中讀入程式中的變數

1.所用的WINAPI函式原型為:
LPCTSTR lpAppName,
LPCTSTR lpKeyName,
LPCTSTR lpDefault,
LPTSTR lpReturnedString,
DWORD nSize,
LPCTSTR lpFileName
);
其中各參數的意義
前二個參數與 WritePrivateProfileString中的意義一樣.
lpDefault : 如果INI檔案中沒有前兩個參數指定的欄位名或鍵名,則將此值賦給變數.
lpReturnedString : 接收INI檔案中的值的CString對象,即目的快取器.
nSize : 目的快取器的大小.
lpFileName : 是完整的INI檔案名稱.
2.具體使用方法:現要將上一步中寫入的學生的信息讀入程式中.
CString strStudName;
int nStudAge;
GetPrivateProfileString("StudentInfo","Name","默認姓名",strStudName.GetBuffer(MAX_PATH),MAX_PATH,"c:\\stud\\student.ini");
執行後 strStudName 的值為:"張三",若前兩個參數有誤,其值為:"默認姓名".
注意:如果在讀入的ini檔案不存在,則按默認值生成相應的ini檔案
3.讀出整型值要用另一個WINAPI函式:
UINT GetPrivateProfileInt(
LPCTSTR lpAppName,
LPCTSTR lpKeyName,
INT nDefault,
LPCTSTR lpFileName
);
這裡的參數意義與上相同.使用方法如下:
nStudAge=GetPrivateProfileInt("StudentInfo","Age",10,"c:\\stud\\student.ini");

循環寫入/讀出多個值

設現有一程式,要將使用的幾個檔案名稱保存下來,具體程式如下:
1.寫入:
CString strTemp,strTempA;
int i;
int nCount=6;
檔案://共有6個檔案名稱需要保存
for(i=0;i {strTemp.Format("%d",i);
strTempA=檔案名稱;
檔案://檔案名稱可以從數組,列表框等處取得.
::WritePrivateProfileString("UseFileName","FileName"+strTemp,strTempA,
"c:\\usefile\\usefile.ini");
}
strTemp.Format("%d",nCount);
::WritePrivateProfileString("FileCount","Count",strTemp,"c:\\usefile\\usefile.ini");
檔案://將檔案總數寫入,以便讀出.
2.讀出:
nCount=::GetPrivateProfileInt("FileCount","Count",0,"c:\\usefile\\usefile.ini");
for(i=0;i {strTemp.Format("%d",i);
strTemp="FileName"+strTemp;
::GetPrivateProfileString("CurrentIni",strTemp,"default.fil", strTempA.GetBuffer(MAX_PATH),MAX_PATH,"c:\\usefile\\usefile.ini");
檔案://使用strTempA中的內容.
}

補充信息

補充三點:
1.INI檔案的路徑必須完整,檔案名稱前面的各級目錄必須存在,否則寫入不成功,該函式返回 FALSE 值.
2.檔案名稱的路徑中必須為 \\ ,因為在VC++中, \\ 才表示一個 \ .
3.也可將INI檔案放在程式所在目錄,此時 lpFileName 參數為: ".\\student.ini".

相關詞條

熱門詞條

聯絡我們