Linux下讀取Ini檔案類
#include "Ini.h" /****************************************************************************** * 功 能:建構函式 * 參 數:無 * 返回值:無 * 備 注: ******************************************************************************/ CIni::CIni( ) { memset( m_szKey,0,sizeof(m_szKey) ); m_fp = NULL; } /****************************************************************************** * 功 能:解構函式 * 參 數:無 * 返回值:無 * 備 注: ******************************************************************************/ CIni::~CIni() { m_Map.clear(); } /****************************************************************************** * 功 能:開啟檔案函式 * 參 數:無 * 返回值: * 備 注: ******************************************************************************/ INI_RES CIni::OpenFile(const char* pathName, const char* type) { string szLine,szMainKey,szLastMainKey,szSubKey; char strLine[ CONFIGLEN ] = { 0 }; KEYMAP mLastMap; int nIndexPos = -1; int nLeftPos = -1; int nRightPos = -1; m_fp = fopen(pathName, type); if (m_fp == NULL) { printf( "open inifile %s error!\n",pathName ); return INI_OPENFILE_ERROR; } m_Map.clear(); while( fgets( strLine, CONFIGLEN,m_fp) ) { szLine.assign( strLine ); //刪除字串中的非必要字元 nLeftPos = szLine.find("\n" ); if( string::npos != nLeftPos ) { szLine.erase( nLeftPos,1 ); } nLeftPos = szLine.find("\r" ); if( string::npos != nLeftPos ) { szLine.erase( nLeftPos,1 ); } //判斷是否是主鍵 nLeftPos = szLine.find("["); nRightPos = szLine.find("]"); if( nLeftPos != string::npos && nRightPos != string::npos ) { szLine.erase( nLeftPos,1 ); nRightPos--; szLine.erase( nRightPos,1 ); m_Map[ szLastMainKey ] = mLastMap; mLastMap.clear(); szLastMainKey = szLine ; } else { //是否是子鍵 if( nIndexPos = szLine.find("=" ),string::npos != nIndexPos) { string szSubKey,szSubValue; szSubKey = szLine.substr( 0,nIndexPos ); szSubValue = szLine.substr( nIndexPos+1,szLine.length()-nIndexPos-1); mLastMap[szSubKey] = szSubValue ; } else { //TODO:不符合ini鍵值模板的內容 如註釋等 } } } //插入最後一次主鍵 m_Map[ szLastMainKey ] = mLastMap; return INI_SUCCESS; } /****************************************************************************** * 功 能:關閉檔案函式 * 參 數:無 * 返回值: * 備 注: ******************************************************************************/ INI_RES CIni::CloseFile() { if (m_fp != NULL) { fclose(m_fp); m_fp = NULL; } return INI_SUCCESS; } /****************************************************************************** * 功 能:獲取[SECTION]下的某一個鍵值的字串 * 參 數: * char* mAttr 輸入引數 主鍵 * char* cAttr 輸入引數 子鍵 * char* value 輸出引數 子鍵鍵值 * 返回值: * 備 注: ******************************************************************************/ INI_RES CIni::GetKey(const char* mAttr, const char* cAttr, char* pValue) { KEYMAP mKey = m_Map[ mAttr ]; string sTemp = mKey[ cAttr ]; strcpy( pValue,sTemp.c_str() ); return INI_SUCCESS; } /****************************************************************************** * 功 能:獲取整形的鍵值 * 參 數: * cAttr 主鍵 * cAttr 子鍵 * 返回值:正常則返回對應的數值 未讀取成功則返回0(鍵值本身為0不衝突) * 備 注: ******************************************************************************/ int CIni::GetInt(const char* mAttr, const char* cAttr ) { int nRes = 0; memset( m_szKey,0,sizeof(m_szKey) ); if( INI_SUCCESS == GetKey( mAttr,cAttr,m_szKey ) ) { nRes = atoi( m_szKey ); } return nRes; } /****************************************************************************** * 功 能:獲取鍵值的字串 * 參 數: * cAttr 主鍵 * cAttr 子鍵 * 返回值:正常則返回讀取到的子鍵字串 未讀取成功則返回"NULL" * 備 注: ******************************************************************************/ char *CIni::GetStr(const char* mAttr, const char* cAttr ) { memset( m_szKey,0,sizeof(m_szKey) ); if( INI_SUCCESS != GetKey( mAttr,cAttr,m_szKey ) ) { strcpy( m_szKey,"NULL" ); } return m_szKey; }
用法:比如讀取 [Section1] key1=1 key2=abcdw [Section2] key1=3 key2=ddba CIni ini; ini.OpenFile(“./Test.ini”,”r” ); char *pVal1 = ini.GetStr(“Section1”,”key2”); int nKey = ini.GetInt(“Section2”,”key1”); 再封裝一下 #define INIINT( a ,b ) ini.GetInt(a,b) #define INISTR(a,b) ini.GetStr(a,b) 讀取所有的欄位都可以用 以下形式
相關推薦
Linux下讀取Ini檔案類
#include "Ini.h" /****************************************************************************** * 功 能:建構函式 * 參 數:無 * 返回值:無 * 備 注: *********************
linux下怎樣編輯檔案儲存檔案讀取內容
編輯檔案儲存檔案 首先開啟命令控制檯找到要編輯的檔案的路徑,執行命令ls找到自己要編譯的檔案 然後執行命令vi 檔名 這時如果想要修改檔案內容,就要按下鍵盤上“i”,在左下方就會變成INSERT,就可以修改了 寫個echo的程式碼,儲存Esc+:+w
伺服器公共庫開發--讀取ini檔案格式的類
/******************************************************************** created: 2008/07/28 filename: config.h author: Lichuang
linux下生成圖片檔案列表及讀取
一個很簡單的sh檔案就可以搞定 listfilepath=list.txt filepath=./sampledata/ find $filepath -name *.png > $listfilepath 然後在windows下就是使用.bat批處理檔案來進行
windows和linux下讀取檔案換行符的一個坑——\r\n和\n
拿同事的一個windows下的C程式,在Linux下跑,結果不正確。定位為讀取.ini配置檔案錯誤。該配置檔案是在windows下編輯的,網上查到資料,說是windows和linux下對換行符處理不同導致的。
windows下讀取配置檔案(.ini)
Windows系統中有很多.ini檔案,最重要的就是“System.ini”、“System32.ini”和“Win.ini”。該檔案主要存放使用者所做的選擇以及系統的各種引數。使用者可以通過修改INI檔案,來改變應用程式和系統的很多配置,如通訊埠的選擇等。在Windows
17.18.實現一個讀取INI檔案的類
開發環境: vs2013, win10 經過很多次修改,和對一些錯誤的學習,才搞定了這麼一個類: 比如說LPCTSTR的賦值,new和delete要成對出現,字元陣列和字串的庫函式去取代自己寫字串處理函式等, wcsncpy_s用法,string類的賦值運算子等。 標頭檔案
Linux下讀取doc,docx檔案
docx檔案 利用python-docx包,好像暫時不支援python3。 # -*- coding:utf-8 -*- import sys import docx path = sys.argv[1] file = docx.Document(path
Linux下解析配置檔案和GKeyFile讀取配置檔案
# this is just an example # there can be comments before the first group [First Group] Name=Key File Exampletthis value showsnesc
CIniFile類,讀取INI檔案
2008年04月26日 星期六 上午 10:27/*=================================================================== 檔名:CIniFile類定義檔案
Linux下讀取RFID卡號(C串口編程)
start itl star tor 卡號 字節數 同時 描述符 lag 由於項目需要用到RFID、GPRS、攝像頭等模塊所以便看了一下,整理了一下學習思路,本篇先是整理一下串口讀取RFID卡號的程序思路,後面還會更其他的 RFID模塊: 本次采用的是125K的RF
Linux下讀取位圖需要註意什麽
Linux 位圖 在Linux下讀取位圖遇到的問題,很好地體現了linux與Windows操作系統的不同。按理說位圖格式與操作系統無關,讀取也應該無關,實際上在位圖讀到內存中時已經不同。下面主要介紹自己在Linux下操作位圖遇到的問題。 (一)、位圖結構 位圖一開始是兩個結構體,包括位圖的詳細
Linux下安裝.run檔案
Welcome To My Blog 實踐中學習Linux,今天安裝福昕PDF閱讀器,順便推薦下,很好用,可以任意勾勾畫畫。 官網下載安裝包FoxitReader2.4.1.0609_Server_x64_enu_Setup.run.tar.gz 1. 解壓 tar -zxvf
linux下解壓縮檔案中文亂碼問題的解決
在windows上壓縮的檔案,是以系統預設編碼中文來壓縮檔案。由於zip檔案中沒有宣告其編碼,所以linux上的unzip一般以預設編碼解壓,中文檔名會出現亂碼。 雖然2005年就有人把這報告為bug, 但是info-zip的官方網站沒有把自動識別編碼列入計劃,可能他們不認為這是個問題。Sun對java中存在
自定義讀取配置檔案類
#include<iostream> #include<string.h> #include<vector> #include<map> #include<set> #include <fstream> #include<
linux shell 讀取配置檔案
隨著linux接觸的越來越多,我們難免需要從一些配置檔案中進行讀取配置引數,linux中shell屬於指令碼型語言,讀取時沒有其它語言方便,特將用過的一種方式分享給大家 實戰程式碼: $ more a.txt name=hello world age=22 ip=192.168.
Linux下的二進位制檔案比較工具
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
linux C 讀取目錄檔案並統計檔案數
#include <stdio.h> #include <stdlib.h> #include <dirent.h> #include <errno.h> #include <string.h> #define MAX 1024
Linux下檢視隱藏檔案命令
一般的Linux下的隱藏目錄使用命令ls -l是查看不出來的,只能檢視到檔案及資料夾 檢視Linux下的隱藏檔案需要用到命令 ls -al 其他檢視檔案目錄命令: ls -l ll ls -l / 個人網站:http://xudailong.
java上傳檔案到 linux 下的 tomcat 檔案伺服器
linux 安裝 tomcat 伺服器,我安裝的是 tomcat 7,未測試其他版本 linux 安裝 tomcat 連線 https://mp.csdn.net/mdeditor/83987640# 本次使用的阿里雲 linux os7 , tomcat 7 + ssm 1、修改目