| 
TA的每日心情|  | 慵懒 2018-2-11 09:23
 | 
|---|
 签到天数: 8 天 [LV.3]偶尔看看II | 
 
| 本帖最后由 冰糖 于 2010-11-9 21:22 编辑 
 当时学C时候抄袭来的代码,不保证能运行 /:017
 复制代码#include <graphics.h>
#include <stdio.h>
#include <fcntl.h>
#include <alloc.h>
#include <stdlib.h>
#include <string.h>
#include "Conio.h"
#include "graphics.h"
#define closegr closegraph
    void initgr(void) /* BGI初始化 */
{int gd=DETECT,gm=0; /* 和gd=VGA,gm=VGAHI是同样效果 */
 registerbgidriver(EGAVGA_driver);/* 注册BGI驱动后可以不需要.BGI文件的支持运行 */
 initgraph(&gd,&gm,"");
}
void drawmat(char *mat,int matsize,int x,int y,int color)
/*依次:字模指针、点阵大小、起始坐标(x,y)、颜色*/
{int i,j,k,n;
 n=(matsize-1)/8+1;
 for(j=0;j<matsize;j++)
  for(i=0;i<n;i++)
   for(k=0;k<8;k++)
    if(mat[j*n+i]&(0x80>>k))  /*测试为1的位则显示*/
     putpixel(x+i*8+k,y+j,color);
}
char shi64[]={
/* 以下是 '师' 的 64点阵黑体 字模,512 byte */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x7E,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x7C,0x3F,0xFF,0xFF,0xFF,0xF0,
0x00,0x00,0x7C,0x3F,0xFF,0xFF,0xFF,0xF0,
0x00,0x00,0x7C,0x3F,0xFF,0xFF,0xFF,0xF0,
0x03,0xF0,0x7C,0x3F,0xFF,0xFF,0xFF,0xF0,
0x03,0xE0,0x7C,0x00,0x00,0xF8,0x00,0x00,
0x03,0xE0,0x7C,0x00,0x00,0xF8,0x00,0x00,
0x03,0xE0,0x7C,0x00,0x00,0xF8,0x00,0x00,
0x03,0xE0,0x7C,0x00,0x00,0xF8,0x00,0x00,
0x03,0xE0,0x7C,0x00,0x00,0xF8,0x00,0x00,
0x03,0xE0,0x7C,0x00,0x00,0xF8,0x00,0x00,
0x03,0xE0,0x7C,0x00,0x00,0xF8,0x00,0x00,
0x03,0xE0,0x7C,0x00,0x00,0xF8,0x00,0x00,
0x03,0xE0,0x7C,0x00,0x00,0xF8,0x00,0x00,
0x03,0xE0,0x7C,0x00,0x00,0xF8,0x00,0x00,
0x03,0xE0,0x7C,0x0F,0xFF,0xFF,0xFF,0xC0,
0x03,0xE0,0x7C,0x0F,0xFF,0xFF,0xFF,0xC0,
0x03,0xE0,0x7C,0x0F,0xFF,0xFF,0xFF,0xC0,
0x03,0xE0,0x7C,0x0F,0xFF,0xFF,0xFF,0xC0,
0x03,0xE0,0x7C,0x0F,0x80,0xF8,0x07,0xC0,
0x03,0xE0,0x7C,0x0F,0x80,0xF8,0x07,0xC0,
0x03,0xE0,0x7C,0x0F,0x80,0xF8,0x07,0xC0,
0x03,0xE0,0x7C,0x0F,0x80,0xF8,0x07,0xC0,
0x03,0xE0,0x7C,0x0F,0x80,0xF8,0x07,0xC0,
0x03,0xE0,0x7C,0x0F,0x80,0xF8,0x07,0xC0,
0x03,0xE0,0x7C,0x0F,0x80,0xF8,0x07,0xC0,
0x03,0xE0,0x7C,0x0F,0x80,0xF8,0x07,0xC0,
0x03,0xE0,0x7C,0x0F,0x80,0xF8,0x07,0xC0,
0x03,0xE0,0x7C,0x0F,0x80,0xF8,0x07,0xC0,
0x03,0xE0,0x7C,0x0F,0x80,0xF8,0x07,0xC0,
0x03,0xE0,0x7C,0x0F,0x80,0xF8,0x07,0xC0,
0x03,0xE0,0x7C,0x0F,0x80,0xF8,0x07,0xC0,
0x03,0xE0,0x7C,0x0F,0x80,0xF8,0x07,0xC0,
0x03,0xE0,0x7C,0x0F,0x80,0xF8,0x07,0xC0,
0x03,0xE0,0x7C,0x0F,0x80,0xF8,0x07,0xC0,
0x03,0xE0,0x7C,0x0F,0x80,0xF8,0x07,0xC0,
0x03,0xE0,0x78,0x0F,0x80,0xF8,0x07,0xC0,
0x03,0xE0,0xF8,0x0F,0x80,0xF8,0x07,0xC0,
0x03,0xE0,0xF8,0x0F,0x80,0xF8,0x07,0xC0,
0x03,0xE0,0xF8,0x0F,0x80,0xF8,0x07,0x80,
0x03,0xE1,0xF0,0x0F,0x80,0xF8,0xFF,0x80,
0x00,0x01,0xF0,0x0F,0x80,0xF8,0xFF,0x80,
0x00,0x03,0xF0,0x0F,0x80,0xF8,0x7F,0x80,
0x00,0x03,0xE0,0x0F,0x80,0xF8,0x7F,0x00,
0x00,0x07,0xE0,0x0F,0x80,0xF8,0x7C,0x00,
0x00,0x0F,0xC0,0x0F,0x80,0xF8,0x60,0x00,
0x00,0x1F,0xC0,0x0F,0x80,0xF8,0x00,0x00,
0x00,0x3F,0x80,0x00,0x00,0xF8,0x00,0x00,
0x00,0x7F,0x00,0x00,0x00,0xF8,0x00,0x00,
0x00,0xFE,0x00,0x00,0x00,0xF8,0x00,0x00,
0x01,0xFC,0x00,0x00,0x00,0xF8,0x00,0x00,
0x07,0xF8,0x00,0x00,0x00,0xF8,0x00,0x00,
0x07,0xF0,0x00,0x00,0x00,0xF8,0x00,0x00,
0x01,0xE0,0x00,0x00,0x00,0xF8,0x00,0x00,
0x00,0xC0,0x00,0x00,0x00,0xF8,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
char da64[]={
/* 以下是 '大' 的 64点阵黑体 字模,512 byte */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,
0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,
0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,
0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,
0x00,0x00,0x00,0x07,0xC0,0x00,0x00,0x00,
0x00,0x00,0x00,0x07,0xC0,0x00,0x00,0x00,
0x00,0x00,0x00,0x07,0xC0,0x00,0x00,0x00,
0x00,0x00,0x00,0x07,0xC0,0x00,0x00,0x00,
0x00,0x00,0x00,0x07,0xC0,0x00,0x00,0x00,
0x00,0x00,0x00,0x07,0xC0,0x00,0x00,0x00,
0x00,0x00,0x00,0x07,0xC0,0x00,0x00,0x00,
0x00,0x00,0x00,0x07,0xC0,0x00,0x00,0x00,
0x00,0x00,0x00,0x07,0xC0,0x00,0x00,0x00,
0x00,0x00,0x00,0x07,0xC0,0x00,0x00,0x00,
0x00,0x00,0x00,0x07,0xC0,0x00,0x00,0x00,
0x01,0xE0,0x00,0x07,0xC0,0x00,0x07,0xC0,
0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC0,
0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC0,
0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC0,
0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC0,
0x00,0x00,0x00,0x07,0xC0,0x00,0x00,0x00,
0x00,0x00,0x00,0x07,0xC0,0x00,0x00,0x00,
0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,
0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,
0x00,0x00,0x00,0x0F,0xE0,0x00,0x00,0x00,
0x00,0x00,0x00,0x0F,0xE0,0x00,0x00,0x00,
0x00,0x00,0x00,0x0F,0xE0,0x00,0x00,0x00,
0x00,0x00,0x00,0x0F,0xF0,0x00,0x00,0x00,
0x00,0x00,0x00,0x1F,0xF0,0x00,0x00,0x00,
0x00,0x00,0x00,0x1F,0xF0,0x00,0x00,0x00,
0x00,0x00,0x00,0x1F,0xF8,0x00,0x00,0x00,
0x00,0x00,0x00,0x3E,0x78,0x00,0x00,0x00,
0x00,0x00,0x00,0x3E,0x7C,0x00,0x00,0x00,
0x00,0x00,0x00,0x7C,0x3E,0x00,0x00,0x00,
0x00,0x00,0x00,0xFC,0x3E,0x00,0x00,0x00,
0x00,0x00,0x00,0xF8,0x1F,0x00,0x00,0x00,
0x00,0x00,0x01,0xF8,0x1F,0x80,0x00,0x00,
0x00,0x00,0x03,0xF0,0x0F,0xC0,0x00,0x00,
0x00,0x00,0x03,0xF0,0x07,0xE0,0x00,0x00,
0x00,0x00,0x07,0xE0,0x07,0xF0,0x00,0x00,
0x00,0x00,0x0F,0xC0,0x03,0xF8,0x00,0x00,
0x00,0x00,0x1F,0xC0,0x01,0xFC,0x00,0x00,
0x00,0x00,0x3F,0x80,0x00,0xFE,0x00,0x00,
0x00,0x00,0xFF,0x00,0x00,0xFF,0x80,0x00,
0x00,0x01,0xFE,0x00,0x00,0x7F,0xC0,0x00,
0x00,0x03,0xFC,0x00,0x00,0x3F,0xE0,0x00,
0x00,0x0F,0xF8,0x00,0x00,0x1F,0xF8,0x00,
0x00,0x3F,0xF0,0x00,0x00,0x0F,0xFE,0x00,
0x00,0xFF,0xC0,0x00,0x00,0x07,0xFF,0x80,
0x03,0xFF,0x80,0x00,0x00,0x01,0xFF,0xE0,
0x0F,0xFF,0x00,0x00,0x00,0x00,0xFF,0xC0,
0x07,0xFC,0x00,0x00,0x00,0x00,0x7F,0x80,
0x03,0xF8,0x00,0x00,0x00,0x00,0x1F,0x00,
0x01,0xE0,0x00,0x00,0x00,0x00,0x0E,0x00,
0x01,0xC0,0x00,0x00,0x00,0x00,0x02,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
char matarray16k[]={
/* 以下是 '2' 的 16点阵宋体 字模,32 byte */
0x00,0x00,0x07,0xC0,0x08,0x20,0x10,0x10,
0x10,0x10,0x00,0x10,0x00,0x10,0x00,0xE0,
0x03,0x00,0x04,0x00,0x08,0x00,0x10,0x00,
0x10,0x10,0x10,0x10,0x1F,0xF0,0x00,0x00,
/* 以下是 '0' 的 16点阵宋体 字模,32 byte */
0x00,0x00,0x07,0xC0,0x08,0x20,0x10,0x10,
0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
0x10,0x10,0x08,0x20,0x07,0xC0,0x00,0x00,
/* 以下是 '0' 的 16点阵宋体 字模,32 byte */
0x00,0x00,0x07,0xC0,0x08,0x20,0x10,0x10,
0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
0x10,0x10,0x08,0x20,0x07,0xC0,0x00,0x00,
/* 以下是 '2' 的 16点阵宋体 字模,32 byte */
0x00,0x00,0x07,0xC0,0x08,0x20,0x10,0x10,
0x10,0x10,0x00,0x10,0x00,0x10,0x00,0xE0,
0x03,0x00,0x04,0x00,0x08,0x00,0x10,0x00,
0x10,0x10,0x10,0x10,0x1F,0xF0,0x00,0x00,
/* 以下是 '0' 的 16点阵宋体 字模,32 byte */
0x00,0x00,0x07,0xC0,0x08,0x20,0x10,0x10,
0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
0x10,0x10,0x08,0x20,0x07,0xC0,0x00,0x00,
/* 以下是 '6' 的 16点阵宋体 字模,32 byte */
0x00,0x00,0x07,0xC0,0x08,0x20,0x10,0x10,
0x10,0x10,0x10,0x00,0x10,0x00,0x17,0xC0,
0x18,0x20,0x10,0x10,0x10,0x10,0x10,0x10,
0x10,0x10,0x08,0x20,0x07,0xC0,0x00,0x00,
 /* 以下是 '1' 的 16点阵宋体 字模,32 byte */
0x00,0x00,0x01,0x00,0x03,0x00,0x05,0x00,
0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,
0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,
0x01,0x00,0x01,0x00,0x07,0xC0,0x00,0x00,
/* 以下是 '6' 的 16点阵宋体 字模,32 byte */
0x00,0x00,0x07,0xC0,0x08,0x20,0x10,0x10,
0x10,0x10,0x10,0x00,0x10,0x00,0x17,0xC0,
0x18,0x20,0x10,0x10,0x10,0x10,0x10,0x10,
0x10,0x10,0x08,0x20,0x07,0xC0,0x00,0x00,
};
int puthz16(int,int,int,int,char *);
int puthz24(int,int,int,int,int,int,char *);
int getbit(unsigned char,int);
int handle,test1,test2,test3,test4,test5;
main()
 {
     int gdriver,gmode;
          int i,j;
   gdriver=DETECT;
/*   registerbgidriver(EGAVGA_driver);*/
    initgraph(&gdriver,&gmode,"c:\\ccdos\\program\\tc");/*修改以适应*/
   setbkcolor(7);
   setcolor(LIGHTBLUE);
   cleardevice();
   ReadIcon(100,100,"C:\\fnt\\about.dat",0);
 initgr(); /* BGI初始化 */
 drawmat(shi64,64,200,125,WHITE);
 drawmat(da64,64,300,125,WHITE);
 for(i=0;i<8;i++)
  drawmat(matarray16k+i*32,16,300+i*16,250,RED);
    cleardevice();
   mainmenu();
    closegraph();
   exit(0);
  getch(); /* 暂停一下,看看前面绘图代码的运行结果 */
 closegr(); /* 恢复TEXT屏幕模式 */
 }
int openhzk(char c)
 { if (c=='s')
   handle=open("c:\\ucdos\\fnt\\hzk24s",O_RDONLY|O_BINARY);
   if (c=='f')
   handle=open("c:\\ucdos\\fnt\\hzk24f",O_RDONLY|O_BINARY);
   if (c=='k')
   handle=open("c:\\ucdos\\fnt\\hzk24k",O_RDONLY|O_BINARY);
   if (c=='h')
   handle=open("c:\\ucdos\\fnt\\hzk24h",O_RDONLY|O_BINARY);
   if (c=='o')
   handle=open("c:\\ucdos\\hzk16",O_RDONLY|O_BINARY);
   if(handle==-1)
    {
      cputs("Error on open hzk");
      getch();
      closegraph();
      exit(1);
    }
 }
int puthz16(int x,int y,int z,int color,char *p)
  {
    unsigned int i,c1,c2,f=0;
    int i1,i2,i3,rec;
    long l;
    char by[32];
    while((i=*p++)!=0)
      {
    if(i>0xa1)
      if(f==0)
        {
         c1=(i-0xa1)&0x7f;
         f=1;
        }
       else
       {
        c2=(i-0xa1)&0x7f;
        f=0;
        rec=c1*94+c2;
        l=rec*32L;
        lseek(handle,l,SEEK_SET);
        read(handle,by,32);
        for(i1=0;i1<16;i1++)
         for(i2=0;i2<2;i2++)
          for(i3=0;i3<8;i3++)
        if(getbit(by[i1*2+i2],7-i3))
          putpixel(x+i2*8+i3,y+i1,color);
        x=x+16+z;
       }
     }
       return(x);
   }
int puthz24(int x,int y,int z,int color,int xm,int ym,char *p)
  {
    unsigned int i,c1,c2,f=0;
    int i1,i2,i3,i4,i5,rec;
    long l;
    char by[72];
    while((i=*p++)!=0)
      {
    if(i>0xa1)
      if(f==0)
        {
         c1=(i-0xa1-15)&0x07f;
         f=1;
        }
       else
       {
        c2=(i-0xa1)&0x07f;
        f=0;
        rec=c1*94+c2;
        l=rec*72L;
        lseek(handle,l,SEEK_SET);
        read(handle,by,72);
        for(i1=0;i1<24*xm;i1=i1+xm)
         for(i4=0;i4<xm;i4++)
          for(i2=0;i2<3;i2++)
           for(i3=0;i3<8;i3++)
        if(getbit(by[i1/xm*3+i2],7-i3))
          for(i5=0;i5<ym;i5++)
           putpixel(x+i1+i4,y+i2*8*ym+i3*ym+i5,color);
        x=x+24*ym+z;
       }
     }
       return(x);
   }
 int getbit(unsigned char c, int n)
  {
    return((c>>n)&1);
  }
  int mainmenu()
  {
   unsigned char *f[]={"数据输入","数据检查","数据修改","统计记录",
               "报表打印","退出系统"};
   int i,x,key1,key2,test,size;
   char c;void *buffer;
   setcolor(12);
   rectangle(1,0,637,33);
   setfillstyle(1,3);
   floodfill(200,20,12);
   setcolor(LIGHTRED);
   setlinestyle(0,0,2);
   rectangle(1,0,637,479);
   openhzk('s');
   x=-3;
   for(i=0;i<=5;i++)
    x=puthz24(10+x,6,0,1,1,1,f[i]);
   close(handle);
   setcolor(12);
   line(1,33,637,33);
   line(107,0,107,33);
   line(213,0,213,33);
   line(319,0,319,33);
   line(425,0,425,33);
   line(531,0,531,33);
   size=imagesize(3,2,105,31);
   buffer=malloc(size);
   getimage(3,2,105,31,buffer);
   putimage(3,2,buffer,NOT_PUT);
   x=3;
   while(1)
   {
     while(key1!=13)
     {
       while(biOSkey(1)==0);
       key1=key2=bioskey(0);
       key1=key1&0xff;
       key2=key2&0xff?0:key2>>8;
       if(key2==75||key2==77)
       {
     putimage(x,2,buffer,COPY_PUT);
     if(key2==77) x=x>=533?3:x+106;
     if(key2==75) x=x<=3?533:x-106;
     getimage(x,2,x+102,31,buffer);
     putimage(x,2,buffer,NOT_PUT);
       }
     }
     test=(x-3)/106+1;
     switch(test)
     {
      case 1:menu11();
         break;
      case 2:menu12();
         break;
      case 3:menu13();
         break;
      case 4:menu14();
         break;
      case 5:menu15();
         break;
      case 6:closegraph();
         exit(0);
     }
   key1=0;
   }
   free(buffer);
   }
 int menu11()
  {
   unsigned char *f[]={"单个录入","连续录入"};
   int x0=1,y0=35,h=2;
   menu0(x0,y0,h,f);
   switch(test1)
    {case 1:do1();
        break;
     case 2:break;
    }
   mainmenu();
   }
 int do1()
   {setviewport(1,0,638,479,1);
    clearviewport();
    outtextxy(50,50,"name");
    outtextxy(50,60,"number");
    getch();
    clearviewport();
    }
 int menu12()
  {
   unsigned char *f[]={"单个录入","连续录入"};
   int x0=107,y0=35,h=2;
   menu0(x0,y0,h,f);
   }
 int menu13()
  {
   unsigned char *f[]={"单个录入","连续录入"};
   int x0=213,y0=35,h=2;
   menu0(x0,y0,h,f);
   }
  int menu14()
  {
   unsigned char *f[]={"单个录入","连续录入"};
   int x0=319,y0=35,h=2;
   menu0(x0,y0,h,f);
   }
 int menu15()
  {
   unsigned char *f[]={"单个录入","连续录入"};
   int x0=425,y0=35,h=2;
   menu0(x0,y0,h,f);
   }
 int menu0(int x0,int y0,int h,unsigned char *f[])
   {
   int i,y,key1,key2,size0,size1;
   void *buf0,*buf1;
   char c;
   int j,k,len;
      k=0;
      for(j=1;j<h;j++)
      if(strlen(f[k])<strlen(f[j])) k=j;
      len=strlen(f[k])*8+2;
   if((x0+len)>637) x0=637-len;
   size0=imagesize(x0,y0,x0+len,y0+20*h);
   buf0=malloc(size0);
   getimage(x0,y0,x0+len,y0+20*h,buf0);
   setcolor(12);
   rectangle(x0,y0,x0+len,y0+20*h);
   setfillstyle(1,3);
   floodfill(x0+10,y0+10,12);
   setcolor(12);
   setlinestyle(SOLID_LINE,0,1);
   rectangle(x0,y0,x0+len,y0+20*h);
   openhzk('o');
   for(i=0;i<h;i++)
      puthz16(x0+2,i*20+y0+2,0,1,f[i]);
   close(handle);
   size1=imagesize(x0+2,y0,x0+len-2,y0+20);
   buf1=malloc(size1);
   getimage(x0+2,y0,x0+len-2,y0+20,buf1);
   putimage(x0+2,y0,buf1,NOT_PUT);
   y=y0;
   key1=0;
   while(key1!=13&&key1!=27)
     {
       while(bioskey(1)==0);
       key1=key2=bioskey(0);
       key1=key1&0xff;
       key2=key2&0xff?0:key2>>8;
       if(key2==72||key2==80)
       {
     putimage(x0+2,y,buf1,COPY_PUT);
     if(key2==72) y=y==y0?(y0+20*(h-1)):y-20;
     if(key2==80) y=y==(y0+20*(h-1))?y0:y+20;
     getimage(x0+2,y,x0+len-2,y+20,buf1);
     putimage(x0+2,y,buf1,NOT_PUT);
       }
     }
   free(buf1);
   if(key1==13) test1=(y-y0)/20+1;
   if(key1==27) test1=0;
   putimage(x0,y0,buf0,COPY_PUT);
   free(buf0);
 }
 ReadIcon(int x,int y,char *filename,int mode)
 {
 void *buf;
 long size;
 int fp;
 fp=open(filename,O_CREAT|O_BINARY);
 if(fp==-1) return 0;
 size=filelength(fp);
 buf=malloc(size);
 read(fp,buf,size);
 putimage(x,y,buf,mode);
 free(buf);
 close(fp);
 }
 | 
 |