⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 print.c

📁 linux unix curses 库编程实例
💻 C
📖 第 1 页 / 共 2 页
字号:
           wstandend(win);          boo(win);           j=inter;           ln=0;           for (i=0;i<size;i++)            {            if ((i%4)==0)             {              ln=ln+1;              j=inter;              }	    		if (ss[i].num==1) {				coloron(win,2,0,1);    	 			mvwaddstr(win,ln,j-2,"●");				coloroff(win,1);				}    			else {				coloron(win,6,0,2);   		  		mvwaddstr(win,ln,j-2,"○");				coloroff(win,2);				}              mvwaddstr(win,ln,j,ss[i].s);              wrefresh(win);             j=j+inter+14;             }          wstandout(win);          mvwaddstr(win,ss[lo].ly,ss[lo].lx,ss[lo].s);          wrefresh(win);          break;    case CTRL_L:       refresh();   for (i=0;i<=size;i++)  {	memset(filenam,0,sizeof(filenam));	strcpy(filenam,"/usr/spool/lp/requests/");	strcat(filenam,item[i+Page*FLNM].stcd);	strcat(filenam,"-0");	fprintf(fp, "requests file = %s\n",filenam);	if (access(filenam,00)!=0)		item[i+Page*FLNM].num=0;   }            wstandend(win);          boo(win);           j=inter;           ln=0;           for (i=0;i<size;i++)            {            if ((i%4)==0)             {              ln=ln+1;              j=inter;              }	    		if (ss[i].num==1) {				coloron(win,2,0,1);    	 			mvwaddstr(win,ln,j-2,"●");				coloroff(win,1);				}    			else {				coloron(win,6,0,2);   		  		mvwaddstr(win,ln,j-2,"○");				coloroff(win,2);				}              mvwaddstr(win,ln,j,ss[i].s);              wrefresh(win);             j=j+inter+14;             }          wstandout(win);          mvwaddstr(win,ss[lo].ly,ss[lo].lx,ss[lo].s);          wrefresh(win);                         break;      } 	if ( outid == 1) break;i=mgetch(&keyid);}wstandend(win);mvwaddstr(win,ss[lo].ly,ss[lo].lx,ss[lo].s);wrefresh(win);return(ss[lo].lx);}int opdir(char *dirnm){ struct dirent *dir; DIR *pdir;int i,j,count;		count=0; i=0; j=0;		memset(item,0,sizeof(item));	if ((pdir=opendir(dirnm))==NULL) {    		display("不能打开此目录! ! ! ");    		return(0);   		}	while((dir=readdir(pdir))!=NULL) {		if ((strcmp(dir->d_name,"."))&&(strcmp(dir->d_name,".."))) {                	strcpy(item[j].name,dir->d_name);			j++; count++;			}		else			continue;		}		closedir(pdir); j=0;        for (i=0;i<FMAX;i++)   		item[i].num=0;return(count);}PrintAllFile(){  int i , j , k, ln, lo, ret;  char s1[80],s2[80];  char request[25];  char *cp;    fd1=dup(1);  close(1);  resetty();  for (lo=0;lo<ftoal;lo++)  {   memset(s1,0,sizeof(s1));   if (item[lo].num==1)        { 	  continue;        }          else           {            creat("newout",0600);            item[lo].num=1;            strcpy(s1,"lp -o nobanner ");			strcat(s1,PrintPath);            j=0;            for (i=0;i<80;i++)            {              if (ss[lo].s[i]!='\0')                if(ss[lo].s[i]==' ')                  j=j+1;            }            strcat(s1,ss[lo].s+j);            i=system(s1);                        fd2=fopen("newout","r");            fgets(s,80,fd2);            fclose(fd2);            strcpy(item[lo].prn,NULL);            i=strlen(s);			ret=GetWord(s,"is",item[lo].prn);			fprintf(fp,"print request = %s \n",item[lo].prn);			memset(request,0,sizeof(request));			ret=GetWord(strchr(s,'-'),"\0",request);			cp=request;            strcpy(item[lo].stcd,++cp); /* 打印队列号 */			fprintf(fp,"request id = %s \n",item[lo].stcd);           }                        close(1);		}            dup(fd1);            close(fd1);}/*取清算中心报表*/int Exchang(){  char Hdate[9];  char Hpath[FNAME],tmpstr[60];  int ret;  memset(Hdate,0,sizeof(Hdate));  DrawInput("输入报表日期:",Hdate,8);  if ( strlen(Hdate) == 0 )		strcpy(PrintPath,OldPrintPath);  else {  		memset(tmpstr,0,sizeof(tmpstr));		sprintf(tmpstr,"ftpdown %s",Hdate);		noecho();		LasSystem("su","-","las","-c",tmpstr);		echo();  		memset(Hpath,0,sizeof(Hpath));  		strcpy(Hpath,"/usr/las/cccb/report/");  		ret=FileCheck(Hpath);  		if ( ret != 1 )  {			display("没有当日报表! ! ! ! ! ! ");			strcpy(PrintPath,OldPrintPath);			}		else  			strcpy(PrintPath,Hpath);		}  ftoal=opdir(PrintPath);  DisplayReport();return (0);}    int PrintHistoryReport(){  char Hdate[9];  char Hpath[FNAME],tmpstr[60];  int ret;  memset(Hdate,0,sizeof(Hdate));  DrawInput("输入报表日期:",Hdate,8);  if ( strlen(Hdate) == 0 )		strcpy(PrintPath,OldPrintPath);  else {  		memset(tmpstr,0,sizeof(tmpstr));		sprintf(tmpstr,"Downhistory %s",Hdate);		noecho();		sprintf(tmpstr,"su - las -c \"Downhistory %s\"",Hdate);		system(tmpstr);		//LasSystem("su","-","las","-c",tmpstr);		echo();  		memset(Hpath,0,sizeof(Hpath));  		strcpy(Hpath,bkfilepath);  		strncat(Hpath,Hdate,8);		strcat(Hpath,"/");  		ret=FileCheck(Hpath);  		if ( ret != 1 )  {			display("没有当日报表! ! ! ! ! ! ");			strcpy(PrintPath,OldPrintPath);			}		else  			strcpy(PrintPath,Hpath);		}  ftoal=opdir(PrintPath);  DisplayReport();return (0);}  hanlde(a)     /* 时钟信号处理函数 */{  int k,i,j,ln;  char filenam[40]; // resetty();  alarm(5);  signal(SIGALRM,hanlde);  for (k=0;k<=ftoal;k++)  {   memset(filenam,0,sizeof(filenam));   strcpy(filenam,"/usr/spool/lp/requests/");   strcat(filenam,item[k].stcd);   strcat(filenam,"-0");   if (access(filenam,00)!=0)     item[k].num=0;   } /*	  endwin();          refresh();           wstandend(win);          boo(win);           j=inter;           ln=0;           for (i=0;i<ftoal;i++)            {            if ((i%4)==0)             {              ln=ln+1;              j=inter;              }	    		if (ss[i].num==1) {				coloron(win,2,0,1);    	 			mvwaddstr(win,ln,j-2,"●");				coloroff(win,1);				}    			else {				coloron(win,6,0,2);   		  		mvwaddstr(win,ln,j-2,"○");				coloroff(win,2);				}              mvwaddstr(win,ln,j,ss[i].s);              wrefresh(win);             j=j+inter+14;             }          wstandout(win);          mvwaddstr(win,ss[lo].ly,ss[lo].lx,ss[lo].s);          wrefresh(win);                  */ }     coloron(WINDOW *s,short x,short y,short k){//	start_color();	init_pair(k,x,y);	wattron(s,COLOR_PAIR(k));	wrefresh(s);}coloroff(WINDOW *s,short k){	wattroff(s,COLOR_PAIR(k));	wrefresh(s);}int pg_read(char *pg_file){int i,j,PAD_num,line_max;long p=0;int w,h,k;char line[222]; WINDOW *pad,*WW,*ww;FILE *fp;	if ((fp=fopen(pg_file,"r"))==NULL) {		beep();		display("没有此报表!!!");		return -1;		}	ww=newwin(15,77,9,1);	box(ww,0,0);	WW=newwin(13,75,10,2);	pad=newpad(2005,212);	keypad(pad,TRUE);	i=0;	line_max=1;	while(fgets(line,221,fp)) {		mvwprintw(pad,i,0,line);		++i; ++p;		if((++line_max) >= 2000) break;		}	line_max=1;	fclose(fp);	wrefresh(WW);	prefresh(pad,0,0,10,2,22,75);	i=j=0;	for(;;) {	k=wgetch(pad);	switch(k) {		case KEY_UP: 				i--;				if (i<0) {					i=0; beep();					break;				}			wrefresh(WW);			prefresh(pad,i,j,10,2,22,75);			break;		case KEY_DOWN: 				i++; 				if (i>p) { 						i=p; beep();					break;				}			wrefresh(WW);			prefresh(pad,i,j,10,2,22,75);			break;		case KEY_LEFT: 				j--; 				if (j<0) {					j=0; beep();					break;				}			wrefresh(WW);			prefresh(pad,i,j,10,2,22,75);			break;		case KEY_RIGHT: 				j++; 				if (j>210) { 					j=210; beep();					break;				}			wrefresh(WW);			prefresh(pad,i,j,10,2,22,75);			break;		case KEY_PPAGE:				i=i-14;				if (i<0) {					i=0; beep();					break;				}			wrefresh(WW);			prefresh(pad,i,j,10,2,22,75);			break;		case KEY_NPAGE:				i=i+14; 				if (i>p) { 						i=p; beep();					break;				}			wrefresh(WW);			prefresh(pad,i,j,10,2,22,75);			break;					case 'q': goto end;		default: break;		}	}end:	wclear(WW); wrefresh(WW);		delwin(WW);	delwin(ww);	delwin(pad);        ShowHelp("[ Ctrl + E ] 键打印;[ Enter ] 键显示文件内容;[ Page ] 键翻页。");	return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -