📄 cfgloader.c
字号:
// CfgLoader.cpp: implementation of the CCfgLoader class.
#include <string.h>
#include <stdio.h>
#include "CfgLoader.h"
//#define DEBUG
void getErrMsg(char* errMsg)
{
FILE* fpp=fopen("log.txt","a+");
fprintf(fpp,"无法打开文件%s\n",errMsg);
fclose(fpp);
}
/*
void log(char* tt)
{
FILE* fpp=fopen("log.txt","a+");
fprintf(fpp,"%s\n",tt);
fclose(fpp);
}
*/
CfgItem* loadCfg(char* filename, char* devtype)
{
int i;
int itemnum=0;
int len = 1024;
char buf[1024];
char *pstart=NULL;
char *pend=NULL;
char *pch=NULL;
char filepath[256];
FILE *fp;
#ifdef WIN32
strcpy(filepath, ".\\driver\\");
#else
strcpy(filepath, "./driver/");
#endif
strcat(filepath,filename);
fp=fopen(filepath,"r");
if(fp==NULL)
{
getErrMsg(filepath);
fclose(fp);
return NULL;
}
while(1)
{
if(!fgets(buf,len,fp))
break;
if( (pstart = strchr(buf, '[')) == NULL
|| (pend = strchr(buf, ']')) ==NULL )
continue;
if((pch = strchr(buf, ';')) != NULL)
{
if ( pch<pstart || pch<pend)
continue;
}
if (pstart>pend)
continue;
*pend = 0x00;
if (strcmp(devtype, pstart+1))
continue;
while(1)
{
memset(buf, 0x00, len);
if(!fgets(buf,len,fp))
break;
if(buf[0] == '[')
break;
for(i=strlen(buf)-1; i>=0; i--)
{
if(buf[i] == '\r' || buf[i] == '\n')
buf[i] = 0x00;
else
break;
}
if(buf[0] == 0x00)
break;
memset(Item[itemnum].name,0x00,len);
memset(Item[itemnum].value, 0x00, len);
Item[0].item_num = 0;
if((pch=strtok(buf, "=")) !=NULL)
memcpy(Item[itemnum].name,buf,strlen(buf));
else
memset(Item[itemnum].name, 0x00, sizeof(Item[itemnum].name));
if((pch=strtok(NULL, "=")) != NULL)
memcpy(Item[itemnum].value, pch, strlen(pch));
else
memset(Item[itemnum].value, 0x00, sizeof(Item[itemnum].value));
#ifdef DEBUG
log(Item[itemnum].name);
log(Item[itemnum].value);
printf("the name is:%s\n",Item[itemnum].name);
printf("the value is:%s\n",Item[itemnum].value);
#endif
itemnum++;
Item[itemnum].item_num=itemnum;
}
Item[0].item_num = itemnum;
#ifdef DEBUG
printf("the item_num is:%d\n",Item[0].item_num);
#endif
return Item;
}
fclose(fp);
return NULL;
}
/*
int main()
{
loadCfg("term.ini","终端类型1");
return 0;
}
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -