#ifndef _COMMON_PROFILE_HPP_ #define _COMMON_PROFILE_HPP_ #include #include #ifndef _COMMON_WINDOWS_HPP_ #include #endif #ifndef _COMMON_ARRAY_HPP_ #include #endif #ifndef _COMMON_BLOCK_HPP_ #include #endif #ifndef _COMMON_STRING_HPP_ #include #endif #ifndef _COMMON_DISKINFO_HPP_ #include #endif class Profile { public: enum Statement{Pure,NoAssign}; Profile(void); Profile(String iniFileName,String unsetString); virtual ~Profile(void); WORD setIniFile(String iniFileName); WORD isOkay(void)const; BOOL readSectionNames(Block §ionNames); WORD readProfileString(const String §ionString,const String &itemString,String &returnString)const; WORD readProfileBlock(const String §ionString,Block §ionBlock,Statement=Pure); WORD writeProfileString(const String §ionString,const String &itemString,const String &textString); WORD writeProfileBlock(const String §ionString,Block &itemStrings,Block &textStrings); WORD makeFileName(String &pathFileName); WORD verifyDirectory(String &pathDirectoryName); void makePathFileName(String &fileNameString); WORD getCurrentDirectory(String ¤tDirectory)const; void drivePathName(String ¤tDriveString,int appendDirConst=TRUE); static bool makeDirectoryName(String &directoryName); static String removeExtension(String strPathFileName); static String getExtension(String strPathFileName); static bool makeFileName(const String &strPathFileName,String &strFileName); static bool verifyPathFileName(const String &somePathFileName); private: enum{MaxProfileLength=4096}; WORD verifyInitializationFile(String iniFileName); void expandEmbeddedMacro(String &someString)const; String mStringUnset; String mIniPathFileName; WORD mIsOkay; }; inline WORD Profile::isOkay(void)const { return mIsOkay; } inline void Profile::drivePathName(String ¤tDriveString,int appendDirConst) { DiskInfo diskInfo; diskInfo.getCurrentDirectory(currentDriveString); if(appendDirConst)currentDriveString+="\\"; } #if defined(__FLAT__) inline WORD Profile::getCurrentDirectory(String ¤tDirectory)const { currentDirectory.reserve(String::MaxString+1); return (WORD)::GetCurrentDirectory(String::MaxString,currentDirectory); } #else inline WORD Profile::getCurrentDirectory(String ¤tDirectory)const { currentDirectory.reserve(String::MaxString+1); return (::getcwd(currentDirectory,String::MaxString)?TRUE:FALSE); } #endif #endif