📄 clsconfigfile.h
字号:
#ifndef CLSCONFIGFILE_H#define CLSCONFIGFILE_H#include <string>#include <list>#include <vector>#define CONFIG_FILE_GLOBAL_SECTION ""class clsConfigVar{ public: ~clsConfigVar (); protected: friend class clsConfigSeq; friend class clsConfigFile; clsConfigVar (const char* cNewName); int SetIndex ( const std::string& sNewValue, long lIndex ); int GetIndex ( std::string& sBackValue, long lIndex ); int DelIndex ( long lIndex ); int Count ( ); std::string& GetVarString ( ); int m_iWritten; // je li vec zapisan? std::string m_sVarName; std::vector<std::string> m_vcVarIndex; //lista indexa nakon imena varijable u config fileu private:};class clsConfigSeq{ public: ~clsConfigSeq (); protected: friend class clsConfigFile; clsConfigSeq (const char* cNewName); int Count ( ); // koliko je varijabli unutar sekvence int CountIndex ( long lIndex ); // prebroji (iz memorije) sve indexe varijable int CountIndex ( const char* cVarname ); // prebroji (iz memorije) sve indexe varijable int GetVarIndex ( const char* cVarname, std::string& sNewValue, long lIndex ); int GetVarIndex ( long lVarIndex , std::string& sNewValue, long lIndex ); clsConfigVar* GetVar ( const char* cVarname); const char* GetVarName ( long lIndex ); int AddVar ( const char* cNewVarName); int SetVar ( const char* cVarname, const long lNewValue, long lIndex = 0); int SetVar ( const char* cVarname, const char* cNewValue, long lIndex = 0); int SetVar ( const char* cVarname, const float fNewValue, long lIndex = 0); int SetVar ( const char* cVarname, const std::string& sNewValue, long lIndex = 0); int WriteSeq ( int iWriteSeqName, int iConfFile); int ClearWritten (); int DelVar (const char* cVarName); int DelVarValue (const char* cVarName, long lIndex); std::string m_sSeqName; std::list<clsConfigVar> m_lsConfigVar; int m_iWritten; // je li vec zapisan? private:};class clsConfigFile{ enum eStateType { eStartLine=1, eSeqNameRead, eNameRead, ePreIndex, eIndexRead, eComment }; public: clsConfigFile (const char* cFileName = 0); ~clsConfigFile (); int ReadFile (const char* cFileName = 0); // otvori i citaj configfile, procitaj varijable u memoriju int WriteFile (const char* cNewFile = 0); // stvori novi configfile int Count (const char* cFileName = 0); // prebroji (iz memorije) sve sekcije unutar configfilea int CountVar (const char* cSeqName); // prebroji (iz memorije) sve varijable unutar sekcije int CountIndex (const char* cSeqName,const char* cVarname ); // prebroji (iz memorije) sve indexe varijable const char* GetSeqName (long lIndex); int AddSeq (const char* cSeqName); // dodaj novu sekciju int AddVar (const char* cSeqName, const char* cNewVarName); // dodaj novu varijablu int SetVar (const char* cSeqName, const char* cVarname, const long lNewValue, long lIndex = 0); int SetVar (const char* cSeqName, const char* cVarname, const char* cNewValue, long lIndex = 0); int SetVar (const char* cSeqName, const char* cVarname, const float fNewValue, long lIndex = 0); int SetVar (const char* cSeqName, const char* cVarname, const std::string& sNewValue, long lIndex = 0); int GetVarValue (const char* cSeqName, const char* cVarname, unsigned long& lNewValue, long lIndex = 0); int GetVarValue (const char* cSeqName, const char* cVarname, long& lNewValue, long lIndex = 0); int GetVarValue (const char* cSeqName, const char* cVarname, char** cNewValue, long lIndex = 0); int GetVarValue (const char* cSeqName, const char* cVarname, float& fNewValue, long lIndex = 0); int GetVarValue (const char* cSeqName, const char* cVarname, std::string& sNewValue, long lIndex = 0); int GetVarValue (const char* cSeqName, long lVarIndex , std::string& sNewValue, long lIndex = 0); int SeqExists (const char* cSeqName); int VarExists (const char* cSeqName,const char* cVarName); int DelSeq (const char* cSeqName); int DelVar (const char* cSeqName,const char* cVarName); // obrisi varijablu int DelVarValue (const char* cSeqName,const char* cVarName, long lIndex = 0); // obrisi index varijable int Clear (); // obrisi sve const char* GetVarName (const char* cSeqName, long lIndex ); protected: int WriteLine (std::string& sSeqName, const char* cStart , long lSize ); clsConfigVar* GetVar (const char* sSeqName,const char* cVarname); int WriteSeq (int iWriteSeqName, std::string& sSeqName); std::string m_sFileName; std::list<clsConfigSeq> m_lsConfigSeq; int m_iConfFile; //file descriptor ako se koristi open i slicno private: unsigned long HexToNum ( const char* cPtr ); };#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -