C++讀取文本操作API與注意事項

1.文本讀寫API
(1) 從文本中讀取整型數據API:
UINT WINAPI GetPrivateProfileInt(LPCSTR lpAppName, LPCSTR lpKeyName, INT nDefault, LPCSTR lpFileName);

lpAppName: 指定字段名;
lpKeyName: 讀取關鍵字名稱;
nDefault: 默認返回的整型數據;
lpFileName: 文本路徑名稱;
返回值: 讀取到的整型數據;
作用: 讀取文本中指定關鍵字後面的整數數據,若沒有讀到數據,默認返回上面的nDefault值;

(2) 從文本中讀取字符串數據API:
DWORD WINAPI GetPrivateProfileString(LPCSTR lpAppName, LPCSTR lpKeyName,
LPCSTR lpDefault, LPSTR lpReturnedString, DWORD nSize, LPCSTR lpFileName);

lpAppName: 指定字段名;
lpKeyName: 讀取關鍵字名稱;
lpDefault: 默認返回的字符串數據;
lpReturnedString: 接收數據的目標字符串;
nSize: 目標字符串的大小,這個長度一定要管夠;
lpFileName: 文本路徑名稱;
作用:讀取文本中指定關鍵字後面的字符串數據,若關鍵字段數據爲空,默認讀取上面的lpDefault值;

舉例:讀取下列文本中[MYSQL]字段裏的"number"整數和"account"字符串;
在這裏插入圖片描述

TCHAR m_strPath[100] = _T("..\\bin\\NPE_FT.dat");
int m_iNumber;
TCHAR buf[500];

/*讀取文本整型數據*/
m_iNumber = ::GetPrivateProfileInt(_T("MYSQL"), _T("number"), 0, m_strPath);

/*讀取文本字符串數據*/
::GetPrivateProfileString(_T("MYSQL"), _T("account"), _T(""), buf, 500, m_strPath);

(3) 向文本中寫入數據API(在文本打開情況下,是不能寫入數據的!必須關閉文本才能寫入!):
BOOL WINAPI WritePrivateProfileString(LPCSTR lpAppName, LPCSTR lpKeyName,
LPCSTR lpString, LPCSTR lpFileName);

lpAppName: 指定字段名;
lpKeyName: 寫入關鍵字名稱;
lpString: 寫入的字符串數據;
lpFileName: 文本路徑名稱;
返回值: 寫入成功返回TRUE,寫入失敗返回FALSE;
作用:向文本中指定關鍵字後面寫入字符串數據lpString。

舉例:在下列文本中[Test]字段的"age"和"name"關鍵字後面寫入數據;
在這裏插入圖片描述

TCHAR m_strPath[100] = _T("..\\bin\\NPE_FT.dat");

::WritePrivateProfileString(_T("Test"), _T("age"), _T("10"), m_strPath);
::WritePrivateProfileString(_T("Test"), _T("name"), _T("hello world"), m_strPath);

用上面的讀寫文本API時需要了解的一些知識點:
; 註釋寫法

[字段名1]
關鍵字1=值
關鍵字2=值

[字段名2]
關鍵字3=值
關鍵字4=值

2.在VS中設置不同類型的相對路徑
因爲有一些奇怪的符號,CSDN文本編輯器打不出來,只能發圖片了:
在這裏插入圖片描述

在這裏插入圖片描述
注意:以上兩種方法所講的相對路徑文件夾如果不存在,系統會自動生成對應的文件夾,若相對路徑文件夾已存在,則對其內部的任何文件都沒有影響。

附加知識點:如何修改的exe文件名字:”屬性”→”常規”→”目標文件名”
(1) 如果只給默認的exe文件名加後綴:在默認文件名後面直接加後綴,不需要特殊符號修飾;
(2) 如果要把exe名字全部修改:直接把默認的exe文件名刪除,輸入自己想要的文件名。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章