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

📄 hallmain.c

📁 该代码中包含数十个磁盘以及文件系统信息获取和修复的代码
💻 C
📖 第 1 页 / 共 3 页
字号:
     fread(&s4,1,1,tmfp);                     //386.
     fread(&s3,1,1,tmfp);                     //387.
     fread(&s2,1,1,tmfp);                     //388.
     fread(&s1,1,1,tmfp);                     //389.
     fclose(tmfp);                            //390.
     WHD(s1,s2,s3,s4,name);                   //391.源扇区清零
     remove(name);                            //392.
     setviewport(0,400,300,440,0);            //393.
     outhz(0,20,"数据已经写入目的扇区,"      //394.
     "源扇区清零",7);                         //395.
     outhz(0,40,"按任一键退出",7);            //396.
   }                                          //397.
                                              //398.
   if((strcmp(sh,"/w")==0)                    //399.将文件数据写入扇区
     ||(strcmp(sh,"/W")==0)&&argc==2)         //400.
   {                                          //401.
     outhz(0,20,"输入扇区数据文件名:",7);    //402.
     finame(180,20);                          //403.
     strcpy(name,gsh);                        //404.
     while(1)                                 //405.
     {                                        //406.
       if((fp=fopen(gsh,"rb"))==NULL)         //407.如果打开文件失败
       {                                      //408.
         cleardevice();                       //409.
         setviewport(0,0,200,20,0);           //410.
         outhz(0,20,"输入的扇区数据文件名"    //411.
         "没有找到!",7);                     //412.
         outhz(0,40,"是否继续输入扇区数据"    //413.
         "文件名(Y/N)?",7);             //414.
         c=toupper(getch());                  //415.
         while((c==78)||(c==89))              //416.
         {                                    //417.
           if(c==78)                          //418.
           {                                  //419.
             closegraph();                    //420.
             exit(0);                         //421.
           }                                  //422.
           if(c==89)                          //423.
           {                                  //424.
             cleardevice();                   //425.
             outhz(0,20,"输入扇区数据"        //426.
             "文件名:",7);                   //427.
             finame(180,20);                  //428.
             strcpy(name,gsh);                //429.
             break;                           //430.
           }                                  //431.
         }                                    //432.
       }                                      //433.
       else                                   //434.
         break;                               //435.
     }                                        //436.
     fclose(fp);                              //437.
     i=open(gsh,O_CREAT);                     //438.
     if(filelength(i)!=512)                   //439.检测文件字节数
     {                                        //440.
       close(i);                              //441.
       cleardevice();                         //442.
       setviewport(0,0,200,20,0);             //443.
       outhz(0,20,"输入的扇区数据文件名"      //444.
       "错误!",14);                          //445.
       outhz(0,40,"按任一键退出",15);         //446.
       getch();                               //447.
       closegraph();                          //448.
       exit(0);                               //449.
     }                                        //450.
     close(i);                                //451.
                                              //452.
     fp=fopen(name,"rb");                     //453.
     for(i=0;i<=511;i++)                      //454.
     {                                        //455.
       h[i]=fgetc(fp);                        //456.
     }                                        //457.
     fclose(fp);                              //458.
     cleardevice();                           //459.
     setviewport(0,0,600,320,0);              //460.
     disph();                                 //461.
     setviewport(0,320,300,400,0);            //462.
     outhz(0,0,"上面是显示的扇区文件"         //463.
     "十六进制数据:",7);                     //464.
     fp=fopen(name,"rb");                     //465.
     for(i=0;i<=511;i++)                      //466.
     {                                        //467.
       fh[i]=fgetc(fp);                       //468.
     }                                        //469.
     fclose(fp);                              //470.
     for(i=0;i<=511;i++)                      //471.
       t+=fh[i];                              //472.
     ltoa(t,sh,10);                           //473.
     outhz(0,40,"扇区文件512个"            //474.
     "字节的算术和是:",7);                   //475.
     outhz(290,40,sh,7);                      //476.
                                              //477.
     outhz(0,60,"数据是否写入"                //478.
     "扇区(Y/N)?",7);                   //479.
     c=toupper(getch());                      //480.
     while((c==78)||(c==89))                  //481.
     {                                        //482.
       if(c==78)                              //483.
       {                                      //484.
         closegraph();                        //485.
         exit(0);                             //486.
       }                                      //487.
       if(c==89)                              //488.
         break;                               //489.
     }                                        //490.
     outhz(0,80,"输入写数据的扇区号:",7);    //491.
     finame(180,400);                         //492.
     k=atol(gsh);                             //493.
     tmfp=tmpfile();                          //494.
     fwrite(&k,4,1,tmfp);                     //495.
     rewind(tmfp);                            //496.
     fread(&s4,1,1,tmfp);                     //497.
     fread(&s3,1,1,tmfp);                     //498.
     fread(&s2,1,1,tmfp);                     //499.
     fread(&s1,1,1,tmfp);                     //500.
     fclose(tmfp);                            //501.
     WHD(s1,s2,s3,s4,name);                   //502.将文件数据写入扇区
     fclose(tmfp);                            //503.
     setviewport(0,400,300,440,0);            //504.
     outhz(0,20,"数据已经写入扇区",7);        //505.
     outhz(0,40,"按任一键退出",7);            //506.
   }                                          //507.
                                              //508.
   if((strcmp(sh,"/cle")==0)                  //509.将扇区清零
     ||(strcmp(sh,"/CLE")==0)&&argc==2)       //510.
   {                                          //511.
     setviewport(0,20,400,40,0);              //512.
     outhz(0,20,"输入扇区号:",7);            //513.
     finame(100,40);                          //514.
     k=atoi(gsh);                             //515.
     for(i=0;i<=511;i++)                      //516.
       fh[i]=0;                               //517.
     tmpnam(name);                            //518.
     fp=fopen(name,"wb");                     //519.
     for(i=0;i<=511;i++)                      //520.
       fputc(fh[i],fp);                       //521.
     fclose(fp);                              //522.
     tmfp=tmpfile();                          //523.
     fwrite(&k,4,1,tmfp);                     //524.
     rewind(tmfp);                            //525.
     fread(&s4,1,1,tmfp);                     //526.
     fread(&s3,1,1,tmfp);                     //527.
     fread(&s2,1,1,tmfp);                     //528.
     fread(&s1,1,1,tmfp);                     //529.
     fclose(tmfp);                            //530.
     WHD(s1,s2,s3,s4,name);                   //531.
     remove(name);                            //532.
     setviewport(0,40,400,60,0);              //533.
     outhz(0,20,"扇区已经清零",7);            //534.
     outhz(0,40,"按任一键退出",7);            //535.
   }                                          //536.
   getch();                                   //537.
   closegraph();                              //538.
}                                             //539.
char gsh[16];                                 //540.定义全局数组变量
                                              //541.
void disph()                                  //542.十六进制显示函数
{                                             //543.
  FILE *tmfp;                                 //544.
  char q[2];                                  //545.
  int x,y,m;                                  //546.
  int i,j,k,l;                                //547.
  int x1,x2,y1,y2;                            //548.
  x1=0;  x2=600;                              //549.
  y1=0;  y2=20;                               //550.
  i=0;  j=0;                                  //551.
  while(j<16)                                 //552.
  {                                           //553.
    setviewport(x1,y1,x2,y2,0);               //554.
    x=0;  y=0;  k=0;                          //555.
    while(k<32)                               //556.
    {                                         //557.
      moveto(x,y);                            //558.
      tmfp=tmpfile();                         //559.
      m=h[i];                                 //560.
      fprintf(tmfp,"%2x",m);                  //561.
      rewind(tmfp);                           //562.
      l=0;                                    //563.
      while(l<2)                              //564.
      {                                       //565.
        *q=fgetc(tmfp);                       //566.
        *(q+1)='\0';                          //567.
        settextstyle(DEFAULT_FONT,            //568.
        HORIZ_DIR,1);                         //569.
        outtextxy(x,y+4,q);                   //570.
        x+=8+1;  l++;                         //571.
      }                                       //572.
      i++;   k++;                             //573.
      fclose(tmfp);                           //574.
    }                                         //575.
    j++;                                      //576.
    y1=y1+20;  y2=y2+20;                      //577.
  }                                           //578.
}                                             //579.

⌨️ 快捷键说明

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