From 9c10729f007aad4b75d9a3dbdf01b39a193e069c Mon Sep 17 00:00:00 2001 From: Alexander Harkness Date: Sun, 24 Nov 2013 14:22:15 +0000 Subject: Moved iniFile --- iniFile/iniFile.h | 205 ------------------------------------------------------ 1 file changed, 205 deletions(-) delete mode 100644 iniFile/iniFile.h (limited to 'iniFile/iniFile.h') diff --git a/iniFile/iniFile.h b/iniFile/iniFile.h deleted file mode 100644 index 83d961fc6..000000000 --- a/iniFile/iniFile.h +++ /dev/null @@ -1,205 +0,0 @@ -// IniFile.cpp: Implementation of the CIniFile class. -// Written by: Adam Clauss -// Email: cabadam@tamu.edu -// You may use this class/code as you wish in your programs. Feel free to distribute it, and -// email suggested changes to me. -// -// Rewritten by: Shane Hill -// Date: 21/08/2001 -// Email: Shane.Hill@dsto.defence.gov.au -// Reason: Remove dependancy on MFC. Code should compile on any -// platform. Tested on Windows/Linux/Irix -////////////////////////////////////////////////////////////////////// - -/* -!! MODIFIED BY FAKETRUTH and madmaxoft!! -*/ - -#ifndef CIniFile_H -#define CIniFile_H - - - - - -#define MAX_KEYNAME 128 -#define MAX_VALUENAME 128 -#define MAX_VALUEDATA 2048 - - - - - -// tolua_begin - -class cIniFile -{ -private: - bool m_IsCaseInsensitive; - - struct key - { - std::vector names; - std::vector values; - std::vector comments; - } ; - - std::vector keys; - std::vector names; - std::vector comments; - - /// If the object is case-insensitive, returns s as lowercase; otherwise returns s as-is - AString CheckCase(const AString & s) const; - -public: - enum errors - { - noID = -1, - }; - - /// Creates a new instance with no data - cIniFile(void); - - // Sets whether or not keynames and valuenames should be case sensitive. - // The default is case insensitive. - void CaseSensitive (void) { m_IsCaseInsensitive = false; } - void CaseInsensitive(void) { m_IsCaseInsensitive = true; } - - /** Reads the contents of the specified ini file - If the file doesn't exist and a_AllowExampleRedirect is true, tries to read .example.ini, and - writes its contents as .ini, if successful. - Returns true if successful, false otherwise. - */ - bool ReadFile(const AString & a_FileName, bool a_AllowExampleRedirect = true); - - /// Writes data stored in class to the specified ini file - bool WriteFile(const AString & a_FileName) const; - - /// Deletes all stored ini data (but doesn't touch the file) - void Clear(void); - - /// Returns index of specified key, or noID if not found - int FindKey(const AString & keyname) const; - - /// Returns index of specified value, in the specified key, or noID if not found - int FindValue(const int keyID, const AString & valuename) const; - - /// Returns number of keys currently in the ini - int GetNumKeys(void) const { return (int)keys.size(); } - - /// Add a key name - int AddKeyName(const AString & keyname); - - // Returns key names by index. - AString GetKeyName(const int keyID) const; - - // Returns number of values stored for specified key. - int GetNumValues(const AString & keyname) const; - int GetNumValues(const int keyID) const; - - // Returns value name by index for a given keyname or keyID. - AString GetValueName(const AString & keyname, const int valueID) const; - AString GetValueName(const int keyID, const int valueID) const; - - // Gets value of [keyname] valuename =. - // Overloaded to return string, int, and double. - // Returns defValue if key/value not found. - AString GetValue (const AString & keyname, const AString & valuename, const AString & defValue = "") const; - AString GetValue (const int keyID, const int valueID, const AString & defValue = "") const; - double GetValueF(const AString & keyname, const AString & valuename, const double defValue = 0) const; - int GetValueI(const AString & keyname, const AString & valuename, const int defValue = 0) const; - bool GetValueB(const AString & keyname, const AString & valuename, const bool defValue = false) const - { - return (GetValueI(keyname, valuename, defValue ? 1 : 0) != 0); - } - - // Gets the value; if not found, write the default to the INI file - AString GetValueSet (const AString & keyname, const AString & valuename, const AString & defValue = ""); - double GetValueSetF(const AString & keyname, const AString & valuename, const double defValue = 0.0); - int GetValueSetI(const AString & keyname, const AString & valuename, const int defValue = 0); - bool GetValueSetB(const AString & keyname, const AString & valuename, const bool defValue = false) - { - return (GetValueSetI(keyname, valuename, defValue ? 1 : 0) != 0); - } - - // Sets value of [keyname] valuename =. - // Specify the optional paramter as false (0) if you do not want it to create - // the key if it doesn't exist. Returns true if data entered, false otherwise. - // Overloaded to accept string, int, and double. - bool SetValue( const int keyID, const int valueID, const AString & value); - bool SetValue( const AString & keyname, const AString & valuename, const AString & value, const bool create = true); - bool SetValueI( const AString & keyname, const AString & valuename, const int value, const bool create = true); - bool SetValueB( const AString & keyname, const AString & valuename, const bool value, const bool create = true) - { - return SetValueI( keyname, valuename, int(value), create); - } - bool SetValueF( const AString & keyname, const AString & valuename, const double value, const bool create = true); - - // tolua_end - - bool SetValueV( const AString & keyname, const AString & valuename, char *format, ...); - - // tolua_begin - - // Deletes specified value. - // Returns true if value existed and deleted, false otherwise. - bool DeleteValueByID(const int keyID, const int valueID); - bool DeleteValue(const AString & keyname, const AString & valuename); - - // Deletes specified key and all values contained within. - // Returns true if key existed and deleted, false otherwise. - bool DeleteKey(const AString & keyname); - - // Header comment functions. - // Header comments are those comments before the first key. - - /// Returns the number of header comments - int GetNumHeaderComments(void) {return (int)comments.size();} - - /// Adds a header comment - void AddHeaderComment(const AString & comment); - - /// Returns a header comment, or empty string if out of range - AString GetHeaderComment(const int commentID) const; - - /// Deletes a header comment. Returns true if successful - bool DeleteHeaderComment(int commentID); - - /// Deletes all header comments - void DeleteHeaderComments(void) {comments.clear();} - - - // Key comment functions. - // Key comments are those comments within a key. Any comments - // defined within value names will be added to this list. Therefore, - // these comments will be moved to the top of the key definition when - // the CIniFile::WriteFile() is called. - - /// Get number of key comments - int GetNumKeyComments(const int keyID) const; - - /// Get number of key comments - int GetNumKeyComments(const AString & keyname) const; - - /// Add a key comment - bool AddKeyComment(const int keyID, const AString & comment); - - /// Add a key comment - bool AddKeyComment(const AString & keyname, const AString & comment); - - /// Return a key comment - AString GetKeyComment(const int keyID, const int commentID) const; - AString GetKeyComment(const AString & keyname, const int commentID) const; - - // Delete a key comment. - bool DeleteKeyComment(const int keyID, const int commentID); - bool DeleteKeyComment(const AString & keyname, const int commentID); - - // Delete all comments for a key. - bool DeleteKeyComments(const int keyID); - bool DeleteKeyComments(const AString & keyname); -}; - -// tolua_end - -#endif -- cgit v1.2.3