亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? read_ini.c

?? 讀取配置文件(ini格式)的程序
?? C
字號:
#include<stdio.h>#include<stdlib.h>#include<string.h>/*表示類型的宏*/#define STRSTR 0#define STRINT 1#define STRFLOAT 2#define STRDOUBLE 3/*判斷空白*/#define isblank(c) ((c) == ' ' || (c) == '\t' || (c) == '\n' || (c) == '\r')/*×INI配置文件的格式:×ini文件由多行字符串組成,這些字符可以劃分為三種類型:×(1)數據域:×為配置數據項的分類,此字符串由“【 ”開始,以“】”結束,在中括號之間的即為數據域×(2)配置項×字符串格式為:“配置項名稱 = 配置項取值”,相當于一個以“= ”分隔的固定分隔字符串×它只有2個數據域,第一個域是配置項的名稱,第二個域是配置項的值×(3)注釋行×以“# ”開始的即為注釋行 */ /* 字符串報文庫 */typedef struct STRRESVARstu{	int nAmount;			/* 數據域總數 */	int nFlag;				/* 0:定長域;1:分隔域 */	int *filedlen;			/* 每個域的長度 */	int nCompartlen;		/* 分隔符號的長度 */	char szCompart[10];		/* 分隔字符串 */	char **filedaddr;		/* 指向每個域首的指針 */} STRRESVAR;typedef STRRESVAR *PSTRRESVAR;/*刪除空白字符*/char * trim_string(char* sz_dest){	int n, n_len;	if (sz_dest != NULL){		/* ―――― 以下刪除字符串右邊的空格 ―――― */		for (n = strlen(sz_dest); n > 0; n--){			if (!isblank(sz_dest[n - 1]))  break;		}		sz_dest[n] = '\0'; 			/* 將右邊最靠左的一個空格替換為0 */		/* ―――― 以下刪除字符串左邊的空格 ―――― */		n_len = strlen(sz_dest);		for (n = 0; n < n_len; n++){			if (!isblank(sz_dest[n])) break;		}		strcpy(sz_dest, sz_dest + n);	/* 從左邊第一個非空格起向前移動到串首既可*/	}	return sz_dest;}/**/int strrespre(char *buf, PSTRRESVAR pstr_stu){	int i = 0, j = 0;	char *p1, *p2;	if (pstr_stu->nFlag == 0)				/* 固定長度報文 */	{		for (i=0; i<pstr_stu->nAmount; i++)		{			pstr_stu->filedaddr[i] = buf + j;			j = j + pstr_stu->filedlen[i] + pstr_stu->nCompartlen;		}	}	else										/* 固定分隔報文 */	{		p1 = buf;		p2 = p1;		while (p1 != NULL && i<= pstr_stu->nAmount)		{			pstr_stu->filedaddr[i] = p1;			/* p1指向數據域首地址 */			p2 = strstr(p1, pstr_stu->szCompart);			if (p2 == NULL)						/* 最后一個數據域 */			{				pstr_stu->filedlen[i] = strlen(p1);				p1 = NULL;			}			else 								/* 非最后一個數據域 */			{				pstr_stu->filedlen[i] = p2 - p1;	/* 數據域長度 */				p1 = p2 + pstr_stu->nCompartlen;	/* p1指向下一個數據域首地址 */			}			i++;								/* 當前解析的數據域編號 */		}	}	return 0;}/**/int strresvalue(char *buf, STRRESVAR Strstu, int nIndex, void *pValue, int nType){	char szStrbuf[1024];	memset(szStrbuf, 0, sizeof(szStrbuf));	/* 拷貝數據域原始信息 */	strncpy(szStrbuf, Strstu.filedaddr[nIndex],Strstu.filedlen[nIndex]);	trim_string(szStrbuf);		/* 清除原始數據首尾的空格 */	/* 轉化數據類型并回傳數據信息 */	switch (nType)	{		case STRINT :			/* 整型 */			*(int *)pValue = atoi(szStrbuf);			break;		case STRDOUBLE:			/* 浮點型 */			*(double *)pValue = atoi(szStrbuf);			break;		default:			/* 缺省為字符型 */			strcpy((char *)pValue, szStrbuf);			break;	}	return 0;}/*解析配置項字符串,*//**配置項字符串是一個以“=”分隔的,共有2個數據域的固定分隔的字符串報文,*該函數解析字符串報文并按照指定的數據類型返回配置項(第二號域)的取值*/int GetConfigStrValue(char *buf, void *p_value, int n_type){	char *n_ce_addr[2];	int n_ce_len[2];	STRRESVAR stu_str;	stu_str.nAmount = 2;				/* 數據域總數 */	stu_str.nFlag = 1;				/* 固定分隔 */	stu_str.filedlen = n_ce_len;		/* 每個域的長度 */	stu_str.nCompartlen = 1;			/* 分隔符號的長度 */	strcpy(stu_str.szCompart, "=");	/* 分隔字符串 */	stu_str.filedaddr = n_ce_addr;		/* 指向每個域首的指針 */	strrespre(buf, &stu_str);		/* 解析字符串報文 */    strresvalue(buf, stu_str, 1, p_value, n_type);	return 0;	}/*從指定的配置文件中讀取指定的配置項的信息,讀取szRoot數據域中的szName配置項的配置信息,保存于pValue*/int GetConfigValue(char *sz_path, char *sz_root, char *sz_name, void *p_value, int n_type){	FILE *fp;	int nFlag = 0;	/* 進入數據域的標志 */	static char buf[1024], sz_root_ext[100], sz_name_ext[100];    fp = fopen(sz_path, "r");	if(fp==NULL){		 perror("open file error");		 return -1;		}	sprintf(sz_root_ext, "[%s]", sz_root);	/* 數據域“[szRoot]”格式 */	sprintf(sz_name_ext, "%s=", sz_name);		/* 數據項“szName=“格式 */	while (feof(fp) == 0){		memset(buf, 0, sizeof(buf));		fgets(buf, sizeof(buf), fp);		/* 讀取文件中的每一行字符串 */		if (buf[0] == '#') continue;		/* 注解行,跳過 */											/* 未進入數據域時,只查詢數據域行 */		if (nFlag == 0 && buf[0] != '[') continue;											/* 未進入數據域,當前處于數據域行 */		else if (nFlag == 0 && buf[0] == '[') {	/* 匹配當前數據域是否為所求域 */			if (strncmp(buf, sz_root_ext, strlen(sz_root_ext)) == 0) nFlag = 1;		}		else if (nFlag == 1 && buf[0] == '['){												break;	/* 數據域遍歷完畢 */		}		/* 遍歷數據域中的配置項 */		else {	/* 匹配當前配置項是否為所求項 */			if (strncmp(buf, sz_name_ext, strlen(sz_name_ext)) == 0){ /* 從配置項中分解配置取值 */				GetConfigStrValue(buf, p_value, n_type) == 0;				fclose(fp);				return 0;			}		}	}//end of while	fclose(fp);	return -1;}int main(){	int nPort;	char szIp[20];	char proco[20];    GetConfigValue("config.ini", "SERVER01", "IP", szIp, STRSTR);	GetConfigValue("config.ini","SERVER01", "PORT", &nPort, STRINT);	GetConfigValue("config.ini","SERVER01", "PROCOTOL", proco, STRSTR);		printf(" IP=%s \n PORT=%d\n PROCOTOL=%s\n", szIp, nPort,proco);	getchar();	return 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲色图在线看| 国内国产精品久久| 久久国产精品72免费观看| 成人免费看的视频| 日韩欧美色电影| 亚洲成人777| thepron国产精品| 欧美精品一区二区蜜臀亚洲| 亚洲电影你懂得| 99久久精品情趣| 久久久久久久电影| 久久99精品久久久| 欧美精品日日鲁夜夜添| 亚洲综合成人在线视频| 国产**成人网毛片九色 | 91麻豆国产福利精品| 久久精品亚洲精品国产欧美kt∨| 亚洲成人自拍网| 91黄色激情网站| 中文字幕制服丝袜一区二区三区 | 亚洲精品在线电影| 蜜臀av性久久久久蜜臀aⅴ流畅| 91亚洲精品乱码久久久久久蜜桃| 国产亚洲欧美日韩在线一区| 国产毛片精品国产一区二区三区| 亚洲欧洲日韩女同| 国产精品456露脸| 欧美v亚洲v综合ⅴ国产v| 日本成人超碰在线观看| 欧美日韩成人在线| 日韩二区在线观看| 91精品免费在线| 日本aⅴ精品一区二区三区| 91麻豆精品国产91久久久久久| 午夜国产精品影院在线观看| 欧美日韩国产综合一区二区| 亚洲成人免费av| 欧美日韩1234| 日韩黄色免费网站| 3751色影院一区二区三区| 天堂在线一区二区| 91精品国产综合久久国产大片| 午夜精品爽啪视频| 日韩视频一区二区三区在线播放| 日本一区二区三区电影| 亚洲国产岛国毛片在线| 久久五月婷婷丁香社区| 亚洲视频香蕉人妖| 欧美视频在线一区| 日韩二区三区在线观看| 久久蜜桃一区二区| 99视频一区二区| 亚洲电影一区二区三区| 精品国产免费久久 | 久久久精品日韩欧美| 成人国产精品免费观看动漫| 一区二区三区四区视频精品免费| 欧美乱熟臀69xxxxxx| 国产在线精品一区二区夜色| ...av二区三区久久精品| 欧美日韩在线精品一区二区三区激情| 视频一区欧美日韩| 国产三级一区二区| 在线视频欧美精品| 久草热8精品视频在线观看| 日韩一区在线免费观看| 91精品国产综合久久蜜臀| 成人中文字幕合集| 亚洲va韩国va欧美va| 国产午夜精品一区二区三区嫩草| 91视频xxxx| 九九视频精品免费| 亚洲综合视频在线观看| 久久久久久久久久美女| 欧美日韩在线播放三区| 成人免费毛片a| 免费一级片91| 亚洲精品视频在线看| 欧美精品一区二区三区在线 | 久久免费看少妇高潮| 欧美性欧美巨大黑白大战| 国产精品自在在线| 水野朝阳av一区二区三区| 国产精品久久久久久久午夜片| 欧美剧在线免费观看网站 | 91精品视频网| 91丨九色丨黑人外教| 韩国成人精品a∨在线观看| 一区二区国产盗摄色噜噜| 国产色91在线| 久久嫩草精品久久久久| 5566中文字幕一区二区电影 | 成人99免费视频| 精品一区二区在线看| 亚洲午夜激情网页| 亚洲美女视频在线观看| 日本一区二区高清| 久久欧美一区二区| 2欧美一区二区三区在线观看视频| 欧美日韩精品综合在线| 在线视频一区二区三| 色综合视频在线观看| 91视频在线看| 在线视频你懂得一区| 色天使色偷偷av一区二区| 91丨九色丨国产丨porny| 成人a级免费电影| 福利一区二区在线| 国产呦精品一区二区三区网站| 日本欧美久久久久免费播放网| 亚洲高清不卡在线观看| 亚洲激情中文1区| 亚洲综合图片区| 亚洲综合色婷婷| 亚洲午夜在线视频| 视频在线观看国产精品| 日韩avvvv在线播放| 久久精品二区亚洲w码| 免费成人深夜小野草| 久久黄色级2电影| 国产一区免费电影| 懂色av一区二区三区蜜臀| 国产成人精品一区二| 成人av免费在线| 欧美在线影院一区二区| 制服.丝袜.亚洲.中文.综合| 日韩一区二区三免费高清| 精品国产乱码久久久久久蜜臀| 国产亚洲短视频| 国产精品久久国产精麻豆99网站| 17c精品麻豆一区二区免费| 亚洲狠狠丁香婷婷综合久久久| 一区二区国产视频| 久久精品国产久精国产爱| 国产成人精品一区二区三区四区| 99vv1com这只有精品| 欧美性极品少妇| 日韩午夜激情av| 中文字幕乱码亚洲精品一区| 亚洲精品乱码久久久久久| 日韩av中文在线观看| 国产精品一卡二卡在线观看| 91麻豆国产自产在线观看| 日韩一区二区三区电影在线观看 | 91亚洲大成网污www| 欧美美女一区二区三区| 2024国产精品| 亚洲在线视频免费观看| 久草中文综合在线| 在线视频中文字幕一区二区| 欧美电影免费观看高清完整版在| 国产精品美女一区二区| 日韩国产精品大片| aaa国产一区| 日韩三级视频中文字幕| 国产精品三级久久久久三级| 亚洲成a人v欧美综合天堂| 国产精品一区二区三区四区 | 99热精品一区二区| 欧美日韩亚洲国产综合| 国产午夜精品久久久久久免费视| 香蕉影视欧美成人| www.亚洲色图.com| 久久综合色综合88| 婷婷亚洲久悠悠色悠在线播放| 高清在线不卡av| 欧美mv和日韩mv国产网站| 亚洲蜜臀av乱码久久精品蜜桃| 国产一区二区不卡在线| 欧美日韩精品二区第二页| 亚洲欧洲在线观看av| 国产伦精品一区二区三区视频青涩| 日本韩国欧美在线| 国产精品理论片| 国产精品中文字幕欧美| 欧美一级理论片| 亚洲国产中文字幕| 色94色欧美sute亚洲线路二| 国产精品色在线| 成人一二三区视频| 26uuu国产在线精品一区二区| 琪琪久久久久日韩精品| 欧美日韩精品免费| 亚洲成人在线网站| 欧美性xxxxx极品少妇| 一区二区三区国产精华| 91丨九色丨蝌蚪丨老版| 国产精品久久久久久久久搜平片| 国产美女主播视频一区| 欧美成人aa大片| 韩国一区二区三区| 精品噜噜噜噜久久久久久久久试看| 亚洲成人av一区| 欧美精品精品一区| 日日夜夜免费精品视频| 欧美日韩国产一区| 午夜精品一区二区三区免费视频| 欧美日韩精品一区视频| 日一区二区三区| 欧美一个色资源|