zoukankan      html  css  js  c++  java
  • c/c++常用代码 -- ini文件操作

    #pragma once
    
    #include <string>
    #include <sstream>
    
    typedef std::basic_string<TCHAR>    tstring;
    
    
    class CIniCfg
    {
    public:
        CIniCfg()
        {
            TCHAR szTemp[MAX_PATH];
            GetModuleFileName(NULL, szTemp, sizeof(szTemp));
                    
            LPTSTR p = _tcsrchr(szTemp, _T('.'));
            if (p != NULL)
                _tcscpy(p, _T(".ini"));
            else
                _tcscat(szTemp, _T(".ini"));
            
            m_strFilePath = szTemp;
        }
            
        void SetName(LPCTSTR szName)
        {
            TCHAR szTemp[MAX_PATH];
            GetModuleFileName(NULL, szTemp, sizeof(szTemp));
                            
            LPTSTR p = _tcsrchr(szTemp, _T('\'));
            if (p != NULL)
            {
                _tcscpy(++p, szName);
            }        
            
            m_strFilePath = szTemp;
        }
        
        void SetPath(LPCTSTR szPath)
        {
            m_strFilePath = szPath;
        }
        
        BOOL SetInt(LPCTSTR lpAppName,  // pointer to section name
            LPCTSTR lpKeyName,  // pointer to key name
            int nValue)
        {
            std::basic_stringstream<TCHAR> ss;
            ss << nValue;    
            
            return WritePrivateProfileString(
                lpAppName,
                lpKeyName,
                ss.str().c_str(),    //strValue,
                m_strFilePath.c_str());
        }
        
        
        
        BOOL SetString(LPCTSTR lpAppName,  // pointer to section name
            LPCTSTR lpKeyName,  // pointer to key name
            LPCTSTR lpString)   // pointer to string to add
            
        {
            return WritePrivateProfileString(
                lpAppName,
                lpKeyName,
                lpString,
                m_strFilePath.c_str());
        }
        
        
        
        int GetInt(LPCTSTR lpAppName,                // address of section name
            LPCTSTR lpKeyName,                // address of key name
            int nDefault)                    // return value if key name is not found
        {
            return GetPrivateProfileInt(
                lpAppName,
                lpKeyName,  
                nDefault,      
                m_strFilePath.c_str());     
        }
        
        tstring GetString(LPCTSTR lpAppName,        // points to section name
            LPCTSTR lpKeyName,        // points to key name
            LPCTSTR lpDefault)        // points to default string
        {
            TCHAR szRet[MAX_PATH] = {0};
            DWORD dwSize = MAX_PATH;
            
            GetPrivateProfileString(
                lpAppName,            // points to section name
                lpKeyName,            // points to key name
                lpDefault,            // points to default string
                szRet,                // points to destination buffer
                dwSize,                // size of destination buffer
                m_strFilePath.c_str());
            
            return szRet;
        }
        
        
    protected:
        tstring        m_strFilePath;
    };
  • 相关阅读:
    js获取当前时间,日期格式为年月日
    create-react-app里添加less
    react css 模块化
    react 点击父级元素 不触发子级元素click事件
    react-router-dom 实现路由左右滑动进入页面的效果
    vue路由左右侧滑动 react路由左右侧滑动
    react 父组件不能直接在子组件上加className,也得用props传递过去
    react 父组件调用子组件方法
    css滚动相关问题记录
    javascript异步编程的几种方法
  • 原文地址:https://www.cnblogs.com/vc60er/p/4039093.html
Copyright © 2011-2022 走看看