zoukankan      html  css  js  c++  java
  • 读取配置

    //#include"init.hpp"
    #include<string>
    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>

     using namespace std;
      typedef struct global_configure
      {
         string Ip;
           bool Module;
          unsigned int  Port;
          unsigned int  Buffer;
          unsigned int  timer;
      }Configure;
     Configure __config;
    char *  GetString(char *title,char * key,char *filename)
    {
        FILE *fp;
        char szLine[1024];
        static char tmpstr[1024];
        int rtnval;
        int i = 0;
        int flag = 0;
        char *tmp;
     
        if((fp = fopen(filename, "r")) == NULL)
        {
            printf("have   no   such   file ");
            return "";
        }
        while(!feof(fp))
        {
            rtnval = fgetc(fp);
            if(rtnval == EOF)
            {
                break;
            }
            else
            {
                szLine[i++] = rtnval;
            }
            if(rtnval == ' ')
            {
                i--;
                szLine[--i] = '';
                i = 0;
                tmp = strchr(szLine, '=');
     
                if(( tmp != NULL )&&(flag == 1))
                {
                    if(strstr(szLine,key)!=NULL)
                    {
                        //注释行
                        if ('#' == szLine[0])
                        {
                        }
                        else
                        {
                            //找打key对应变量
                            strcpy(tmpstr,tmp+1);
                            fclose(fp);
                            return tmpstr;
                        }
                    }
                }
                else
                {
                    strcpy(tmpstr,"[");
                    strcat(tmpstr,title);
                    strcat(tmpstr,"]");
                    if( strncmp(tmpstr,szLine,strlen(tmpstr)) == 0 )
                    {
                        //找到title
                        flag = 1;
                    }
                }
            }
        }
        fclose(fp);
        return "";
    }
    unsigned int GetInt(char *title,char *key,char * filename)
    {
        return atoi(GetString(title,key,filename));
    }
    void init_(void)
    {
        try
    {
        //读取配置文件,加载全局配置
        printf("enter into init ");
        FILE *fp=NULL;
        fp=fopen("../config.ini","r");
        if(!fp)
    {
        //此处后续添加日志记录错误
        printf("error for open ");
        return ;
    }
        char buff[16]={0};
        strcpy(buff,GetString("global","Ip","../config.ini"));
        printf("buff is %s ",buff);
        strncpy(const_cast<char *>(__config.Ip.c_str()),GetString("global","Ip","../config.ini"),16);
    }    
    catch(...)
    {

    }
    }

  • 相关阅读:
    摇奖-大转盘-js内容
    微信支付出现的问题总结--不同域名进行授权解决方案
    微信开发———让微信debug到自己的程序中;
    微信摇一摇红包
    mybatis二级缓存问题
    mybatis使用拦截器显示sql,使用druid配置连接信息
    mybatis使用拦截器显示sql,使用druid配置连接信息
    mybatis的查询效率问题
    mybatis日志的使用问题:
    js 累加月
  • 原文地址:https://www.cnblogs.com/oracleloyal/p/5474416.html
Copyright © 2011-2022 走看看