|
![]() | 作者: bug_me [bug_me]
![]() |
登录 |
有何函数(C语言)? [此贴被 石狮(bug_me) 在 02月13日19时22分 编辑过] |
地主 发表时间: 04-02-13 19:21 |
![]() | 回复: bailove [bailove] ![]() |
登录 |
小克 #include "stdio.h" #include "string.h" #include "stdlib.h" #include "graphics.h" #include "io.h" #include "fcntl.h" #include "ctype.h" void *Rar,*em; long quwe; main() { int chr,ifp; long length; unsigned char data[73],fn[50]; int gmode,gdriver; puts("Enter LIB24-filename"); scanf("%s",fn); ifp=open(fn,O_RDWR|O_BINARY); if(ifp==-1){cputs("err on open");exit(1);} if(filelength(ifp)<580000L)quwe=-1054L; if(filelength(ifp)>580000L&&filelength(ifp)<600000L)quwe=-95L; if(filelength(ifp)>600000L)quwe=161L; detectgraph(&gdriver,&gmode); if(gmode==CGAHI)gmode=CGAC0; initgraph(&gdriver,&gmode,"d:\\win-tc"); arrow(); cmcnu(); setcolor(1); setbkcolor(15); rectangle(4,4,310,195); setviewport(10,10,188,188,0); drawcom('r',0); drawcom('c',0); drawcom('q',0); while((chr=getch())!='q'&chr!='Q') switch(chr){ case 'r': case 'R':readcode(ifp,&length,data,0); break; case 'e': case 'E':editcode(ifp,length,data); break; } closegraph(); close(ifp); } int drawcom(char c,int f) { char *a[]={"Read","Edit","Quit"}; int i=0; if(c=='r'||c=='R')i=0; if(c=='e'||c=='E')i=1; if(c=='q'||c=='Q')i=2; setcolor(1); setfillstyle(SOLID_FILL,2+f); bar3d(240,i*40-10,300,(i+1)*40-10,0,0); outtextxy(260,10+40*i,a[i]); } int ggetnum(int x,int y) { char c; int num; num=0; setcolor(1); setfillstyle(SOLID_FILL,3); bar3d(x-5,y-5,x+53,y+20,0,0); outtextxy(x,y,"QQWW"); moveto(x+8,y+10); while((c==getch())!='\r'&&num<999){ if(c=='\x8'&&num>0){ moverel(-8,0); bar(getx(),gety(),getx()+8,gety()+6); num/=num; continue;} if(isdigit(c)==0)continue; outtext(&c); num=num*10+c-48;} num=(num/100)*94+num%100+quwe; return(num); } int chat(unsigned char by[]) { int i1,i2,i3,x,y; unsigned char c; clearviewport(); setcolor(2); for(x=5,y=5,i1=0;i1<25;x+=7,i1++)line(x,y,x,y+168); for(x=5,y=5,i2=0;i2<25;y+=7,i2++)line(x,y,x+168,y); setcolor(2); setfillstyle(SOLID_FILL,2); for(i1=0;i1<24;i1++) for(i2=0;i2<3;i2++) for(i3=0;i3<8;i3++) if(getbit(by[i1*3+i2],7-i3)) bar(5+7*i1,5+7*(i2*8+i3),12+7*i1,12+7*(i2*8+i3)); return; } int readcode(int handle,long *l,unsigned char by[]) { #include "stdio.h" long length; drawcom('r',1); length=72L*ggetnum(185,20); lseek(handle,length,SEEK_SET); _read(handle,by,72); *l=length; chat(by); drawcom('r',0); } int editcode(int handle,long length,unsigned char by[]) { extern void *Rar; int v,x,y,k; unsigned char c; long l; void *gp; drawcom('e',1); setcolor(2); setfillstyle(SOLID_FILL,2); bar(200,0,205,5); gp=malloc(imagesize(200,0,205,7)); getimage(200,0,205,7,gp); putimage(200,0,gp,XOR_PUT); putimage(210,110,em,XOR_PUT); x=y=5; putimage(8,8,Rar,XOR_PUT); while(((v=getcom())!='e')&&(v!='E')) switch(v){ case 's': case 'S': lseek(handle,length,SEEK_SET); _write(handle,by,72); break; case 'c': case 'C': putimage(x+1,y+1,gp,XOR_PUT); k=getbit(by[elem(x,y)],pbit(y)); by[elem(x,y)]=putbit(by[elem(x,y)],pbit(y),1-k); break; case 'r': case 'R': readcode(handle,&l,by); x=y=5; putimage(8,8,Rar,XOR_PUT); break; case 2: case 3: case 4: case 5: putimage(x+3,y+3,Rar,XOR_PUT); if(v==2)x=x==5?23*7+5:x-7; if(v==3)x=x==23*7+5?5:x+7; if(v==4)y=y==5?23*7+5:y-7; if(v==5)y=y==23*7+5?5:y+7; putimage(x+3,y+3,Rar,XOR_PUT); break; } putimage(x+3,y+3,Rar,XOR_PUT); drawcom('e',0); putimage(210,110,em,XOR_PUT); return; } int elem(int x,int y) { return((x-5)/7*3+(y-5)/7/8); } int pbit(int y) { return(7-((y-5)/7)%8); } int arrow() { extern void *Rar; int size; int raw[]={0,0,0,4,2,4,10,12,12,10,4,2,4,0,0,0}; setfillstyle(SOLID_FILL,2); fillpoly(8,raw); size=imagesize(0,0,12,12); Rar=malloc(size); getimage(0,0,12,12,Rar); putimage(0,0,Rar,XOR_PUT); return; } int cmcnu() { extern void *em; int size,h,l,i; char *c[]={"Change","Save","Exit","Read form"}; char *c1[]={"C","S","E","R"}; setcolor(2); setfillstyle(SOLID_FILL,3); h=textheight("H"); l=textwidth(c[0]); size=imagesize(0,0,l+40,4*h+40); em=malloc(size); bar3d(0,0,l+40,4*h+40,0,0); for (i=0;i<4;i++){ setcolor(2); outtextxy(10,5+(h+10)*i,c[i]); setcolor(1); outtextxy(10,5+(h+10)*i,c1[i]); } getimage(0,0,l+40,4*h+40,em); putimage(0,0,em,XOR_PUT); return; } int getcom(void) { #include "bios.h" int key; while(bioskey(1)==0); key=bioskey(0); if(key==0x4b00)return(2); if(key==0x4d00)return(3); if(key==0x4800)return(4); if(key==0x5000)return(5); key &=0xff; return(key); } int getbit(unsigned char c,int n) { return((c>>n)&1); } int putbit(unsigned char c,int n,int m) { int i; if(m==0)return(c&(1<<n)); return(c|(1<<n)); } [此贴被 bailove(bailove) 在 02月14日00时44分 编辑过] |
B1层 发表时间: 04-02-14 00:08 |
|
20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon
粤ICP备05087286号