zoukankan      html  css  js  c++  java
  • 随手写的 IniFiles

    IniFiles.h

      1 #pragma once
      2 #include <windows.h>
      3 #include <string>
      4 #include <map>
      5 
      6 class IniFiles
      7 {
      8 public:
      9     IniFiles()
     10     {
     11 
     12     }
     13 
     14     IniFiles(std::string file)
     15     {
     16         m_file = file;
     17     }
     18 
     19     virtual ~IniFiles()
     20     {
     21 
     22     }
     23 
     24     void set_file(std::string file)
     25     {
     26         m_file = file;
     27     }
     28 
     29     void set_string(std::string section, std::string key, std::string value)
     30     {
     31         WritePrivateProfileStringA(section.c_str(), key.c_str(), value.c_str(), m_file.c_str());
     32 
     33     }
     34 
     35 
     36     void set_number(std::string section, std::string key, UINT value)
     37     {
     38         set_string(section, key, std::to_string(value));
     39     }
     40 
     41     std::string get_string(std::string section, std::string key)
     42     {
     43         char buf[4096] = { 0 };
     44         DWORD  dwRet = GetPrivateProfileStringA(section.c_str(), key.c_str(), "", buf, 4096, m_file.c_str());
     45         return buf;
     46     }
     47 
     48     UINT get_number(std::string section, std::string key)
     49     {
     50         return GetPrivateProfileIntA(section.c_str(), key.c_str(), 0, m_file.c_str());
     51 
     52     }
     53 
     54     void get_sections(std::string section, std::map<std::string, std::string>& map_list)
     55     {
     56         char szDestBuff[65535] = { 0 };
     57         DWORD dwRet = GetPrivateProfileSectionA(section.c_str(), szDestBuff, sizeof(szDestBuff), m_file.c_str());
     58 
     59         int i = 0, j = 0, pos;
     60         bool endOfBuffer = FALSE;
     61         char szTmpBuff[4096] = { '' };
     62         std::string tmpStr;
     63         std::string key;
     64         std::string value;
     65         while (!endOfBuffer) {
     66 
     67             if (szDestBuff[i] == '') {
     68                 szTmpBuff[j] = szDestBuff[i];
     69                 tmpStr = szTmpBuff;
     70 
     71                 pos = tmpStr.find('=');
     72                 key = tmpStr.substr(0, pos);
     73                 value = tmpStr.substr(pos+1, tmpStr.size() - pos);
     74                 if (key.size() > 0) {
     75                     map_list[key] = value;
     76                 }
     77 
     78                 j = 0;
     79             }
     80             else {
     81                 szTmpBuff[j] = szDestBuff[i];
     82                 j++;
     83             }
     84 
     85             if (szDestBuff[i] == '' && szDestBuff[i + 1] == '') {
     86                 endOfBuffer = TRUE;
     87             }
     88             i++;
     89         }
     90     }
     91 
     92     static void to_hex(std::string value, std::string& ret_value)
     93     {
     94         //char *buf = new char[4];
     95 
     96         for (int i = 0; i < value.size(); i++) {
     97             char buf[4];
     98             memset(buf, 0, 4);
     99             sprintf_s(buf, 4, "%02X", (BYTE)value[i]);
    100             //_ltoa(value[i], buf, 16);
    101             ret_value.append((const char *)buf, 2);
    102 
    103         }
    104         //delete buf;
    105     }
    106 
    107     static void from_hex(std::string& hex_val, std::string& ret_value)
    108     {
    109         long val;
    110         for (int i = 0; i < hex_val.size(); i++) {
    111             char buf[4];
    112             memset(buf, 0, 4);
    113             memcpy(buf, &hex_val[i], 2);
    114             val = strtol((char*)buf, NULL, 16);
    115             ret_value.append((const char *)&val, 1);
    116             i++;
    117         }
    118     }
    119 
    120 protected:
    121 private:
    122     std::string m_file;
    123 };
    PS:会笑的人,运气通常都会比别人好。
  • 相关阅读:
    EasyUI
    EasyUI
    EasyUI
    django MTV架构下的网站开发步骤
    Centos7下安装python3
    python 线程间事件通知
    hadoop MapReduce
    hadoop文件配置
    DataFrame 数据去重
    用selenium获取cookies
  • 原文地址:https://www.cnblogs.com/thinkinc999/p/13816169.html
Copyright © 2011-2022 走看看