📄 hallmain.c
字号:
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 + -