1. 程式人生 > >MFC檔案讀寫之ini檔案

MFC檔案讀寫之ini檔案

什麼是ini檔案?

initialization File,即為初始化檔案,是windows的系統配置檔案所採用的儲存格式,統管windows的各項配置。或者作為專案中的配置檔案,為整個專案所共用。

檔案格式為 節、鍵、值。其中節為[Section name], 引數為 key(鍵)=value(值)。

ini檔案中註解使用分號表示(;),在分號後面的文字,直到該行結尾都全部為註解。

[Section Name]用來表示一個段落,INI檔案可能是專案中共用的,所以使用[Section Name]段名來區分不同用途的引數區。key就用來表示引數名,value表示對應的值。

ini檔案讀

1、從系統的win.ini檔案中讀取資訊

(1) 讀取字串

DWORD GetProfileString(

LPCTSTR lpAppName, // 節名【不區分大小寫】

LPCTSTR lpKeyName, // 鍵名,讀取該鍵的值【不區分大小寫

LPCTSTR lpDefault, // 若指定的鍵不存在,該值作為讀取的預設值

LPTSTR lpReturnedString, // 一個指向緩衝區的指標,接收讀取的字串

DWORD nSize // 指定lpReturnedString指向的緩衝區的大小

)

如:

CString str;

::GetProfileString("Test","id","Error",str.GetBuffer(20),20);

(2) 讀取整數

UINT GetProfileInt(

LPCTSTR lpAppName, // 同上

LPCTSTR lpKeyName, // 同上

INT nDefault // 若指定的鍵名不存在,該值作為讀取的預設值

)

2 從自己的ini檔案中讀取資訊

函式原型

DWORD GetPrivateProfileString(string lpszSection,string lpszKey,string lpszDefault, lpszReturnBuffer, cchReturnBuffer, lpszFile)

GetPrivateProfileString("DBInfo","IP","",IP.GetBuffer(MAX_PATH),MAX_PATH,iniFilePath);【測過】

CString IP, iniFilePath.

GetPrivateProfileString(Section name,key,"",key.GetBuffer(MAX_PATH),MAX_PATH,ini檔案路徑+檔名);

其中第一個引數為段名,第二個引數為引數名稱,第三個引數為沒找到key返回的預設值,第四個引數為指定一個字串緩衝區,第五個引數為指定裝載到lpReturnedString緩衝區的最大字元數量,第六個引數為初始化檔案的名字,如沒有指定一個完整路徑名,windows就在Windows目錄中查詢檔案。

__inline DWORD GetPrivateProfileString(

LPCTSTR lpAppName,

LPCTSTR lpKeyName,

LPCTSTR lpDefault,

LPTSTR lpReturnedString,

DWORD nSize,

LPCTSTR lpFileName

)

DWORDGetPrivateProfileInt (string lpszSection,string lpszKey,long lpszDefault, lpszFile) 為初始化檔案中指定的條目獲取一個整數值,引數列表跟上文取String一致,而第三個引數是如果找不到則返回一個預設的long型別的值。

特別注意的是 如果找到的數字不是一個合法的整數,函式會返回其中合法的一部分。比如“xyz=55zz”這個條目,函式返回55。

UINT GetPrivateProfileInt( 
LPCTSTR lpAppName, 
LPCTSTR lpKeyName, 
INT nDefault, 
LPCTSTR lpFileName 
);

寫INI檔案

1. 把資訊寫入系統的win.ini檔案

BOOL WriteProfileString(

LPCTSTR lpAppName, // 節的名字,是一個以0結束的字串

LPCTSTR lpKeyName, // 鍵的名字,是一個以0結束的字串。若為NULL,則刪除整個節

LPCTSTR lpString // 鍵的值,是一個以0結束的字串。若為NULL,則刪除對應的鍵

)

2. 把資訊寫入自己定義的.ini檔案

BOOL WritePrivateProfileString(

LPCTSTR lpAppName, // 同上

LPCTSTR lpKeyName, // 同上

LPCTSTR lpString, // 同上

LPCTSTR lpFileName // 要寫入的檔案的檔名。若該ini檔案與程式在同一個目錄下,也可使用相對

//路徑,否則需要給出絕度路徑。

)

如:

::WriteProfileString("Test","id","xym");

//在win.ini中建立一個Test節,並在該節中建立一個鍵id,其值為xym

::WritePrivateProfileString("Test","id","xym","d:\\vc\\Ex1\\ex1.ini");

//在Ex1目錄下的ex1.ini中建立一個Test節,並在該節中建立一個鍵id,其值為xym

//若Ex1.ini檔案與讀寫該檔案的程式在同一個目錄下,則上面語句也可寫為:

::WritePrivateProfileString("Test","id","xym",".\\ex1.ini");

需要注意的是,C系列的語言中,轉義字元'\\'表示反斜線'\'。另外,當使用相對路徑時,\\前的.號不能丟掉了。

相關推薦

MFC檔案ini檔案

什麼是ini檔案? initialization File,即為初始化檔案,是windows的系統配置檔案所採用的儲存格式,統管windows的各項配置。或者作為專案中的配置檔案,為整個專案所共用。 檔案格式為 節、鍵、值。其中節為[Section name], 引數

C++檔案獲取檔案大小的幾種常見的方式

對檔案操作時有時獲得檔案的大小時必要的.下面是獲得其大小小的較簡單方法. #include<io.h> //C語言標頭檔案 #include<iostream> //for s

Python檔案r+/w+/a+

讀模式 r 開啟不存在的檔案會報錯、不能寫;如不指定模式則預設是r 寫模式 w 開啟不存在的檔案會,會新建一個檔案;開啟存在的檔案會先清空後覆蓋原有檔案;不能讀 追加模式 a 開啟不存在的檔

C 檔案(二進位制檔案

  我們將介紹 C 程式設計師如何建立、開啟、關閉文字檔案或二進位制檔案。 一個檔案,無論它是文字檔案還是二進位制檔案,都是代表了一系列的位元組。C 語言不僅提供了訪問頂層的函式,也提供了底層(OS)呼叫來處理儲存裝置上的檔案。本章將講解檔案管理的重要呼叫。 開啟檔案 您可

android檔案,ndk檔案

                1 android檔案讀寫相關文章 http://sunzone.iteye.com/blog

Hadoop程式設計學習(四):使用FileSystem類進行檔案及檢視檔案資訊

http://www.cnblogs.com/beanmoon/archive/2012/12/11/2813235.html 在這一節我們要深入瞭解Hadoop的FileSystem類——這是與與hadoop的檔案系統互動的重要介面。雖然我們只是著重於HDFS的實現,但

Java 檔案及效能比較總結

Java 之 檔案讀寫及效能比較總結 2014年05月12日 17:56:49 閱讀數:21765  幹Java這麼久,一直在做WEB相關的專案,一些基礎類差不多都已經忘記。經常想得撿起,但總是因為一些原因,不能如願。 其實不是沒有時間,只是有些時候疲於總結,今得空,下定決心

Python基本語法文字檔案

  檔案讀寫相關係統函式說明 系統函式 說明 input(tips); 提示使用者輸入資訊,例如 str = input("Please input your ip:") 將輸入的資訊賦值給變數

python檔案(1)

1. 從檔案讀取資料 關於對檔案的操作,使用open(filename, mode),開啟檔案。與之對應的,close()用來關閉檔案。對檔案操作完畢切記要關閉。 open函式引數: mode 引數有: 模式 描述 t 文字模式

java大檔案操作,java nio MappedByteBuffer,高效檔案/記憶體對映

原文地址:https://www.cnblogs.com/lyftest/p/6564282.html   java處理大檔案,一般用BufferedReader,BufferedInputStream這類帶緩衝的Io類,不過如果檔案超大的話,更快的方式是採用MappedByteB

R語言開發二進位制檔案操作

二進位制檔案是一個檔案,其中包含僅以位和位元組形式儲存的資訊(0和1),它們是不可讀的,因為其中的位元組轉換為包含許多其他不可列印字元的字元和符號,隨便我們嘗試使用任何文字編輯器讀取二進位制檔案將顯示為類似Ø和ð這樣的字元。 但是二進位制檔案必須由特定程式讀取才能使用。例如

MFC在Unicode字符集下ANSI編碼檔案

讀取ANSI編碼檔案時,先將檔案儲存在char*指向的記憶體內,而後使用轉換將char*轉換為w_char_t*。wchar_t*可以使用CString的 Format函式。 CFile file(_T("test.txt"), CFile::modeRead);//讀ANSI編碼的檔案 i

VC INI檔案

VC中用函式讀寫ini檔案的方法         ini檔案(即Initialization file),這種型別的檔案中通常存放的是一個程式的初始化資訊。ini檔案由若干個節(Section)組成,每個Section由若干鍵(Key)組成,每個Key可以賦相應的值。讀寫ini檔案實際上就是讀寫某個的Sect

MFC中的檔案方法總結

CStdioFile繼承自CFile,一個CStdioFile 物件代表一個用執行時函式fopen 開啟的C 執行時流檔案。       流式檔案是被緩衝的,而且可以以文字方式(預設)或二進位制方式開啟。文字方式提供對硬回車—換行符對的特殊處理。當你將一個換行符(0x0A)寫入一個文字方式的CStdioFi

Unity3D檔案檔案

為了完成資源的讀取和儲存,這裡做了好多的實驗,也參考了很多的文章和帖子,這裡十分感謝雨鬆的網站,很多時候都能在那裡找到思路和相應的回答。希望這個網站能一直辦下去。 開始正文,為了完成上述功能,自己本地做了很多實驗,為了統一資源版本,我想到的辦法就是把所有的AssetsBun

Python基礎知識檔案與修改

基本操作 f = open("file1", "r")  # 開啟檔案 first_line = f.readline() # 讀一行 data = f.read() # 讀取剩下所有內容,檔案大時候不要用 f.close()  #關閉檔案

opencv學習(十七)XML和YAML檔案操作

可能大部分人到現在接觸的XML和YAML檔案很少,等以後訓練人臉模型進行人臉識別的時候用的就多了。現在先了解一下這兩種檔案型別。 XML:Extensible Markup Language,可擴充套件標記語言,標準通用語言的子集,是一種用於標記電子檔案使其具

python關於csv的檔案記錄

相關配置: Anaconda 4.2.0 (64-bit) Python 3.5.2 關於csv檔案讀寫練習小系統。 程式如下: import csv import time import sys filename = 'ha.csv' datas = [['he

C++ 檔案函式——fopen、fread和fwrite

(1)fopen()函式:開啟檔案 包含標頭檔案: #include<stdio.h> 格式:FILE * fopen(const char * path,const char * mode) 引數: path:需要開啟的檔案路徑

檔案工具簡單實現(一)java的UI介面視覺化畫圖/製作

現在和大家介紹下,我們簡單的介面工具開發,使用者選擇檔案,讀出部分想要檔案內容,滑鼠在大輸入框點選某一行就會顯示在其他輸入框中,然後在其他輸入框修改後內容,點寫入按鈕即可修改並顯示到大輸入框中,且原檔案對應剛剛選的改行內容;大概的介面如下,網路現在原因不能上傳圖片:選擇檔案按