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

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

?? print.c~

?? UNIX 下
?? C~
字號:
	#include "stdio.h"	#include "stdlib.h"	#include "string.h"	//#include "curses.h"	#define font_len 8	#ifdef TRUE	#else 	#define TRUE 1	#endif	#ifdef FALSE	#else		#define FALSE 0	#endif#ifdef DEBUG #define DEBUF_OUTTEXT(a)#else#define DEBUG_OUTTEXT(a) printf("%s\n", a)#endif#define RET_OK 0#define RET_ERR 1#define COL_NUM 16#define COL_MAX_SIZE 128#define LINE_NUM 64#define ASSERT(arg, fp) {if(arg ==NULL){if(fp) fclose(fp); return RET_ERR;}}#define IN#define OUT#define FONT_MAX_NUM 10#define TMP_FILE "tmp.p"const char BADY[] ="<B>";const char END[]  ="<E>";const char HEAD_E[] ="</H>";const char BADY_E[] ="</B>";const char END_E[]  ="</E>";const char FONT[] ="<F?>";const char PARAM[] = "$?";	char * FONT_BEGIN[FONT_MAX_NUM]={"\033e", "\033X", "\033U", "\033g",\								 "\033i"}; char * FONT_END[FONT_MAX_NUM] ={"\033f", "\033Y", "\033R", "\033h",\                                "\033j"};char ERR_FILE_NO[]="文件不存在!file exist!";struct _DATA{	char * pCol[COL_NUM];	struct _DATA * pNext;}*g_pData, *g_pRoot;int g_iTotalNum = 0;int g_iCOLCounter = 0, g_iRAWCounter =0;char * g_pPrintBuf = NULL;char * g_pHeadBuf  = NULL;char * g_pEndBuf   = NULL;char * g_pBadyBuf[LINE_NUM];int g_iBadyCounter =0;/*g_iBadyCounter:數據實體個數*/int g_iLoopNUM =0;/*g_iLoopNUM:用循環方式打印時,定義循環次數*/int g_iPrintType =0;/*g_iPrintType:定義打印方式.==0終瑞打印, ==1主機打印*/char * g_pExecBuf = NULL;int readFormat(char *filename);int readData(char * filename);int help();int processFormat(int type);char * transFormat(char* inBuf);FILE * openTMP();void closeTMP(FILE* fp);FILE * openTMP(){	FILE * fp;	fp = fopen(TMP_FILE, "w");	if(!fp) return NULL;	if(g_iPrintType == 0){//透明打印		fputs("\033[5i", fp);	}else{ //主機打印		printf("!!");	}	return fp;}void closeTMP(FILE *fp){	if(!fp) return ;	if(g_iPrintType ==0){			fputs("\033[4i", fp);	}else{	}	fclose(fp);}int main(int argc, char *argv[]){	char cBuf;	if(argc!=2 && argc!=3){		help();		return RET_ERR;	}	if(argc ==2){		help();		return RET_ERR;	}else if(argc ==3){		if(strlen(argv[1])<4 || strlen(argv[2])<4){			help();			return RET_ERR;		}		cBuf = argv[1][1];		switch(cBuf){			case 'f':			case 'F':				readFormat(&argv[1][3]);			break;			default:				printf("/F:FormatFile\n");				return RET_ERR;			break;		}			cBuf = argv[2][1];		switch(cBuf){			case 'D':			case 'd':				readData(&argv[2][3]);				processFormat(0);			break;			case 'n':			case 'N':				g_iLoopNUM = atoi(&argv[2][3]);				processFormat(1);				break;			default:				printf("循環次數或讀取數據文件! /N:number | /D:DataFile\n");				printf("大家好!\n");				break;		}	}	/*	if(!initscr()){		return RET_ERR;	}	printw("Hello World!\n");	refresh();	sleep(1);	endwin();	*/	return RET_OK;}int readData(char * filename){	FILE * fp;	char cBuf;	char szBuf[COL_MAX_SIZE];	int  iCounter =0;	if(filename == NULL) return RET_ERR;		if(!(fp=fopen(filename, "r"))){		printf("%s:%s\n", ERR_FILE_NO, filename);		return RET_ERR;	}	g_pRoot = g_pData = (struct _DATA*)malloc(sizeof(struct _DATA));	if(g_pData ==NULL) return RET_ERR;	else g_pData->pNext = NULL;	//*****begin read date file	while(!feof(fp)){		if(fread(&cBuf, 1, 1, fp) != 1) break;				if(iCounter < COL_MAX_SIZE - 1){			szBuf[iCounter++] = cBuf;			szBuf[iCounter] = '\0';		}		szBuf[COL_MAX_SIZE-1] = '\0';		if(cBuf =='|' || cBuf =='\n'){			szBuf[iCounter-1] = '\0';			iCounter = 0;			g_pData->pCol[g_iCOLCounter] =(char*)malloc(strlen(szBuf));			ASSERT(g_pData->pCol[g_iCOLCounter], fp);			strncpy(g_pData->pCol[g_iCOLCounter], szBuf, strlen(szBuf));			memset(szBuf, 0, sizeof(szBuf));			g_iCOLCounter ++;		}						if(cBuf =='\n' ){			//printf("run %d|%s|%s\n", g_iRAWCounter, g_pData->pCol[0], g_pData->pCol[1]);			iCounter = 0;			g_pData->pNext = (struct _DATA*)malloc(sizeof(struct _DATA));			ASSERT(g_pData->pNext, fp);			g_pData = g_pData->pNext;			g_pData->pNext = NULL;						g_iRAWCounter ++;				memset(g_pData->pCol,  0, sizeof(char)*COL_NUM);			g_iCOLCounter =0;		}	}	g_iTotalNum = g_iRAWCounter;	g_iRAWCounter = 0;	g_pData = g_pRoot;	//*****end 	if(fp) fclose(fp);	return RET_OK;}int readFormat(char *filename){	FILE * fp, *fp1;	//char cBuf;	long idx1, idx2;	if(filename == NULL) RET_ERR;	if(!(fp=fopen(filename, "r"))) return RET_ERR;		fseek(fp , 0, SEEK_SET);	while(!feof(fp)){		if(fgetc(fp) =='<'){			idx1 = ftell(fp)+3;			switch(fgetc(fp)){				case 'H':					while(TRUE){						if(fgetc(fp) == '<' &&						   fgetc(fp) == '/' && 						   fgetc(fp) =='H' && 						   fgetc(fp) == '>'){							idx2 = ftell(fp);							g_pHeadBuf = (char*)malloc(idx2 -idx1);							ASSERT(g_pHeadBuf, fp);							fseek(fp, -(idx2-idx1), SEEK_CUR);							fread(g_pHeadBuf, 1, idx2-idx1-4, fp);							g_pHeadBuf[idx2 - idx1 -3] = '\0';							break;						}					}				break;				case 'B':					while(TRUE){						if(fgetc(fp) == '<' &&						   fgetc(fp) == '/' && 						   fgetc(fp) =='B' && 						   fgetc(fp) == '>'){							idx2 = ftell(fp);							g_pBadyBuf[g_iBadyCounter] = (char*)malloc(idx2 -idx1);							ASSERT(g_pBadyBuf[g_iBadyCounter], fp);							fseek(fp, -(idx2-idx1), SEEK_CUR);							fread(g_pBadyBuf[g_iBadyCounter], 1, idx2-idx1-4, fp);							g_pBadyBuf[g_iBadyCounter][idx2 - idx1 -3] = '\0';							g_iBadyCounter ++;							break;						}					}				break;				case 'E':					while(TRUE){						if(fgetc(fp) == '<' &&						   fgetc(fp) == '/' && 						   fgetc(fp) =='E' && 						   fgetc(fp) == '>'){							idx2 = ftell(fp);							g_pEndBuf = (char*)malloc(idx2 -idx1);							ASSERT(g_pEndBuf, fp);							fseek(fp, -(idx2-idx1), SEEK_CUR);							fread(g_pEndBuf, 1, idx2-idx1-4, fp);							g_pEndBuf[idx2 - idx1 - 2] = '\0';							break;						}					}				break;						}		}	}	if(fp) fclose(fp);	return RET_OK;}int processFormat(int type){	int i;	FILE * tmp_p =NULL;	switch(type){		case 0://使用數據文件輸入, 打印直至文件結束		for(i =0; i< g_iTotalNum && g_pData; i++){			tmp_p = openTMP();			if(!tmp_p) return RET_ERR;/*			if(g_pHeadBuf){			}			for(i=0; g_pBadyBuf[i] && i< LINE_NUM; i++){ 			}*/			if(g_pEndBuf){				g_pExecBuf = transFormat(g_pEndBuf);				ASSERT(g_pExecBuf, tmp_p);				fputs(g_pExecBuf, tmp_p);				fputs("", tmp_p);			}			closeTMP(tmp_p);			if(g_iPrintType == 0){				printf("按回車打印......");				getchar();				system("cat tmp.p");				printf("打印完成.\n");			}else{				system("lp tmp.p");			}			g_pData = g_pData->pNext;		}		break;		case 1://不使用數據文件輸入, 指定打印次數			tmp_p = openTMP();			if(!tmp_p) return RET_ERR;			if(g_pHeadBuf){			}else			if(g_pBadyBuf[0]){			}else			if(g_pEndBuf){				g_pExecBuf = transFormat(g_pEndBuf);				ASSERT(g_pExecBuf, tmp_p);				fputs(g_pExecBuf, tmp_p);				fputs("", tmp_p);			}else{				printf("請定義固定打印格式及內容:\r\n在<E></E>數據段中!\r\n");			}			closeTMP(tmp_p);			for(i = 0; i< g_iLoopNUM; i++){			if(g_iPrintType ==0){				printf("按回車鍵打印......");				getchar();				system("cat tmp.p");				printf("打印完成.\n");			}else{			}		}				break;	}	return RET_OK;}char * transFormat(IN char* inBuf){	int inp=0, outp=0, font=0, tinp=0, datIdx=0;	char fontBuf[font_len];	char * tmpPoint=NULL;	if(inBuf == NULL)		 return NULL;	if(g_pExecBuf !=  NULL){		free(g_pExecBuf);		g_pExecBuf = NULL;	}		g_pExecBuf = (char*)malloc(strlen(inBuf)*2+COL_MAX_SIZE*COL_NUM);	if(g_pExecBuf == (char*)NULL) return NULL;	if(g_iPrintType == 0){//終端打印		while(inp < strlen(inBuf)){			if(inBuf[inp]=='/' && inBuf[inp+1]=='/'){				//讀注釋,不進行處理.				tinp = inp ;				while(inBuf[++tinp] != '\n'){}				inp = tinp +1;				continue;			}						if(inBuf[inp]=='<'){				if(inBuf[inp+1]=='F'){					font = 0;					tinp = inp+2;					while(tinp++ < inp+font_len){			 			if(inBuf[tinp] == '>'){							memset(fontBuf, 0, font_len);							strncpy(fontBuf, &inBuf[inp+2], tinp-inp-2);							font = atoi(fontBuf);							break;						}					}					if(font >0 && font <FONT_MAX_NUM){//有字體控制語句						sprintf(&g_pExecBuf[outp], FONT_BEGIN[font -1]);						outp += strlen(FONT_BEGIN[font -1]);						inp += tinp-inp +1;						continue;					}				}											if(inBuf[inp+1]=='/'){				//font 引用上次字體變量font,恢復字體					tinp = inp +2;					while(tinp++ < inp +font_len){						if(inBuf[tinp] == '>'){							break;						}					}					if(font >0 && font < FONT_MAX_NUM){						sprintf(&g_pExecBuf[outp], FONT_END[font-1]);						outp += strlen(FONT_END[font-1]);						inp += tinp -inp +1;						continue;					}								}					if(inBuf[inp+1] =='$' && g_pData){//如果數據文件存在,從中檢索據段					font = 0;					tinp = inp+2;					while(++tinp < inp +font_len){						if(inBuf[tinp] =='>' ){							memset(fontBuf, 0, font_len);							//這里存儲數據段索引臨時緩沖							strncpy(fontBuf, &inBuf[inp+2], tinp-inp-2);							font = atoi(fontBuf);//font現在用作存儲數據索引							break;						}						}					if(font < COL_NUM && font >0 && g_pData->pCol[font-1]){						sprintf(&g_pExecBuf[outp], g_pData->pCol[font-1], strlen(g_pData->pCol[font-1]));						outp +=strlen(g_pData->pCol[font-1]);						inp+=tinp -inp +1;						continue;					}				}				}		g_pExecBuf[outp++] = inBuf[inp++];			}	}else if(g_iPrintType ==1){//主機打印	}	return g_pExecBuf;}int releaseData(){	g_pData = g_pRoot;	do{	}while(g_pData->pNext);	return RET_OK;}int help(){	printf("NOTE:\n");	printf("       program /f:format-file [/d|/n:date-file|number]\n\n");	printf("字體:\n");	printf("<F?>text<F?>  F?定義打印字體.\n\n");	printf("數據引用:\n");	printf("<$?>          $?表示數據引用列.\n\n");	printf("例子:\n");	printf("<H>title($9)</H>\n");	printf("<B>姓名:$1,年齡:$2,工齡:$3</B>\n");	printf("<E>finish</E>\n");	return RET_OK;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人免费一区二区三区在线观看| 久久国产精品72免费观看| 亚洲一区二区视频| 激情丁香综合五月| 色诱亚洲精品久久久久久| 久久久久久电影| 美女高潮久久久| 欧美日韩精品一区二区三区蜜桃| 国产欧美日本一区二区三区| 青青草97国产精品免费观看无弹窗版 | 亚洲视频电影在线| 国产永久精品大片wwwapp| 欧美日韩情趣电影| 精品在线亚洲视频| 欧美日韩精品系列| 亚洲线精品一区二区三区| av日韩在线网站| 国产欧美视频一区二区三区| 国产一区亚洲一区| 日韩欧美高清一区| 日本不卡视频在线观看| 欧美日韩精品是欧美日韩精品| 一二三四社区欧美黄| 不卡的av电影| 中文字幕一区二区5566日韩| 成人污污视频在线观看| 欧美激情一区不卡| 成人精品一区二区三区四区| 国产精品网站在线| 成人免费毛片app| 成人免费一区二区三区视频| 成人午夜私人影院| 国产精品午夜春色av| 奇米综合一区二区三区精品视频| 不卡的av网站| 国产欧美一区二区精品性色| 国产自产2019最新不卡| 精品国产乱码久久久久久蜜臀| 激情图区综合网| 国产日韩在线不卡| 99精品欧美一区二区三区综合在线| 中文字幕电影一区| 色偷偷一区二区三区| 亚洲图片欧美色图| 日韩视频免费观看高清完整版在线观看| 日韩不卡一区二区三区 | 日韩视频免费观看高清在线视频| 日韩电影一区二区三区四区| 日韩视频在线永久播放| 国产成人在线色| 亚洲欧美日韩系列| 欧美欧美欧美欧美| 麻豆精品在线看| 欧美va亚洲va香蕉在线| 粉嫩久久99精品久久久久久夜| 国产精品福利一区| 欧美日韩的一区二区| 国内外成人在线| 亚洲日本在线看| 欧美一级午夜免费电影| 丁香六月久久综合狠狠色| 亚洲一区二区三区中文字幕| 日韩女优av电影| 99久久精品免费观看| 亚洲成av人片在线观看无码| 亚洲一区欧美一区| 91精品国产色综合久久ai换脸| 国产盗摄精品一区二区三区在线| 亚洲人123区| 精品国产免费久久| 日本精品裸体写真集在线观看| 日本女人一区二区三区| 国产精品素人视频| 欧美一二三在线| 91麻豆蜜桃一区二区三区| 麻豆91精品91久久久的内涵| 亚洲欧美在线另类| 26uuuu精品一区二区| 欧美私人免费视频| 9i看片成人免费高清| 蜜桃一区二区三区在线| 亚洲综合一二三区| 国产女人18毛片水真多成人如厕| 8x8x8国产精品| 91在线国产观看| 国产成人免费视频 | 亚洲一区二区三区四区在线观看| 久久亚洲一级片| 欧美一级久久久久久久大片| 在线观看欧美黄色| 99久久精品久久久久久清纯| 精品在线播放免费| 欧美96一区二区免费视频| 亚洲一区在线看| 亚洲欧美日韩人成在线播放| 国产精品免费aⅴ片在线观看| 日韩一区二区视频| 欧美日韩美女一区二区| 色94色欧美sute亚洲线路一ni| 丰满放荡岳乱妇91ww| 国产乱码精品一区二区三区av | 日韩欧美综合一区| 欧美日韩成人在线一区| 欧美天堂一区二区三区| 欧美午夜视频网站| 一本色道综合亚洲| 色综合网站在线| 色综合av在线| 欧美在线视频全部完| 欧美午夜精品久久久久久超碰| 一本色道综合亚洲| 欧美性受xxxx黑人xyx| 欧美专区亚洲专区| 欧美丝袜丝交足nylons| 欧美日韩激情在线| 这里只有精品99re| 精品美女在线观看| 国产欧美日韩激情| 中文字幕中文字幕一区| 亚洲欧美日韩国产另类专区| 亚洲猫色日本管| 亚洲成av人在线观看| 日韩成人伦理电影在线观看| 久久99热国产| 国产不卡视频在线观看| 日韩欧美国产综合一区| 日韩视频在线观看一区二区| 久久先锋影音av鲁色资源网| 欧美韩国日本一区| 洋洋av久久久久久久一区| 亚洲高清免费观看高清完整版在线观看 | 国产精品国产三级国产aⅴ原创 | 国产一区二区精品久久| 国产99久久久国产精品潘金 | 久久精品人人爽人人爽| |精品福利一区二区三区| 亚洲综合在线五月| 丝袜亚洲另类丝袜在线| 国产精品资源在线看| 97精品久久久午夜一区二区三区| 欧美专区在线观看一区| 久久综合久色欧美综合狠狠| 国产精品毛片无遮挡高清| 亚洲高清不卡在线观看| 精品亚洲免费视频| 色琪琪一区二区三区亚洲区| 3751色影院一区二区三区| 国产日韩欧美综合在线| 亚洲激情网站免费观看| 蜜臀av亚洲一区中文字幕| 成人午夜电影久久影院| 欧美日本在线看| 国产精品久久久久aaaa樱花 | 激情成人综合网| 日本电影亚洲天堂一区| 精品美女被调教视频大全网站| 国产精品国产三级国产有无不卡 | av不卡免费电影| 日韩一级二级三级| 亚洲猫色日本管| 国产精品99久久久久久有的能看| 在线观看国产日韩| 国产女人18毛片水真多成人如厕| 天天影视涩香欲综合网| av福利精品导航| 精品成人免费观看| 亚洲国产cao| 99国产麻豆精品| 久久日一线二线三线suv| 五月天一区二区| 91免费版在线看| 国产欧美日韩卡一| 麻豆成人免费电影| 欧美人成免费网站| 综合av第一页| 成人av资源在线| 2020国产精品自拍| 蜜桃免费网站一区二区三区| 亚洲精品一区在线观看| 亚洲成人动漫av| 91国产成人在线| 成人免费小视频| gogo大胆日本视频一区| 精品久久久三级丝袜| 肉丝袜脚交视频一区二区| 在线视频你懂得一区| 最新久久zyz资源站| 丁香六月综合激情| 国产欧美一区二区精品秋霞影院| 国模大尺度一区二区三区| 日韩美女天天操| 美脚の诱脚舐め脚责91 | 欧美日韩黄色影视| 亚洲一区在线播放| 欧美性高清videossexo| 亚洲成人在线网站| 欧美午夜精品一区二区三区| 最近中文字幕一区二区三区| 色伊人久久综合中文字幕| 亚洲美女少妇撒尿|