?? allmain.c
字號:
//********************************************
//文件名:ALLMAIN.C
//功能:1. 調用顯示漢字函數
// 2. 調用字符處理函數
// 3. 對扇區數據進行十六進制讀、字符讀、
// 備份、拷貝、搬移、寫入、清零操作
//********************************************
#include<string.h> //1.
#include<graphics.h> //2.
#include<stdio.h> //3.
#include<conio.h> //4.
#include<ctype.h> //5.
#include<bios.h> //6.
#include<fcntl.h> //7.
#include<io.h> //8.
#include<stdlib.h> //9.
int outhz(int,int,char *,int); //10.對調用函數的聲明
void finame(int,int); //11.對調用函數的聲明
void main(int argc,char *argv[]) //12.
{ //13.
char h[512]; //14.
char sh[13]; //15.
FILE *fp; //16.
int i,c; //17.
int cyl,head,sector; //18.
int cyl1,head1,sector1; //19.
extern char gsh[16]; //20.聲明數組是外部變量
int gdriver=DETECT,gmode; //21.
registerbgidriver(EGAVGA_driver); //22.
initgraph(&gdriver,&gmode,""); //23.
setbkcolor(0); //24.
cleardevice(); //25.
//26.
if(argc==1) //27.命令行參數等于1時
{ //28.
outhz(0,20,"輸入[HALLSE /?]獲得幫助",7); //29.
outhz(0,40,"按一個鍵退出",7); //30.
getch(); //31.
closegraph(); //32.關閉圖形方式
exit(0); //33.
} //34.
strcpy(sh,argv[1]); //35.
if((strcmp(sh,"/?")==0)&&argc==2) //36.比較開關字符串
{ //37.
outhz(0,20,"程序HALLSE.EXE" //38.
"使用方法:",7); //39.
outhz(0,40,"1. [HALLSE /?]" //40.
"獲得幫助",7); //41.
outhz(0,60,"2. [HALLSE /RH]" //42.
"顯示十六進制數據",7); //43.
outhz(0,80,"3. [HALLSE /RC]" //44.
"顯示字符",7); //45.
outhz(0,100,"4. [HALLSE /B]" //46.
"備份扇區數據",7); //47.
outhz(0,120,"5. [HALLSE /C]" //48.
"拷貝扇區數據",7); //49.
outhz(0,140,"6. [HALLSE /M]" //50.
"搬移扇區數據",7); //51.
outhz(0,160,"7. [HALLSE /W]" //52.
"文件數據寫入扇區",7); //53.
outhz(0,180,"8. [HALLSE /CLE]" //54.
"扇區清零",7); //55.
outhz(0,200,"按一個鍵退出",7); //56.
getch(); //57.
closegraph(); //58.
exit(0); //59.
} //60.
//61.
if((strcmp(sh,"/rh")==0) //62.比較開關字符串
||(strcmp(sh,"/RH")==0)&&argc==2) //63.
{ //64.
outhz(0,20,"輸入柱面號:",7); //65.
finame(100,20); //66.
cyl=atoi(gsh); //67.將字符串轉為int型的值
setviewport(0,20,400,40,0); //68.
outhz(0,20,"輸入磁頭號:",7); //69.
finame(100,40); //70.
head=atoi(gsh); //71.
setviewport(0,40,400,60,0); //72.
outhz(0,20,"輸入扇區號:",7); //73.
finame(100,60); //74.
sector=atoi(gsh); //75.
closegraph(); //76.
biosdisk(0x02,0x80,head,cyl,sector,1,h); //77.
fp=tmpfile(); //78.
for(i=0;i<=511;i++) //79.
fputc(h[i],fp); //80.
rewind(fp); //81.
for(i=1;i<=512;i++) //82.
{ //83.
c=fgetc(fp); //84.
printf("%2x",c); //85.
if(i%32==0) //86.
printf("\n"); //87.
} //88.
fclose(fp); //89.
printf("\n"); //90.
} //91.
//92.
if((strcmp(sh,"/rc")==0) //93.
||(strcmp(sh,"/RC")==0)&&argc==2) //94.
{ //95.
outhz(0,20,"輸入柱面號:",7); //96.
finame(100,20); //97.
cyl=atoi(gsh); //98.
setviewport(0,20,400,40,0); //99.
outhz(0,20,"輸入磁頭號:",7); //100.
finame(100,40); //101.
head=atoi(gsh); //102.
setviewport(0,40,400,60,0); //103.
outhz(0,20,"輸入扇區號:",7); //104.
finame(100,60); //105.
sector=atoi(gsh); //106.
closegraph(); //107.
biosdisk(0x02,0x80,head,cyl,sector,1,h); //108.
for(i=1;i<=512;i++) //109.
{ //110.
printf("%c ",h[i-1]); //111.
if(i%32==0) //112.
printf("\n"); //113.
} //114.
printf("\n"); //115.
} //116.
//117.
if((strcmp(sh,"/b")==0) //118.
||(strcmp(sh,"/B")==0)&&argc==2) //119.
{ //120.
outhz(0,20,"輸入柱面號:",7); //121.
finame(100,20); //122.
cyl=atoi(gsh); //123.
setviewport(0,20,400,40,0); //124.
outhz(0,20,"輸入磁頭號:",7); //125.
finame(100,40); //126.
head=atoi(gsh); //127.
setviewport(0,40,400,60,0); //128.
outhz(0,20,"輸入扇區號:",7); //129.
finame(100,60); //130.
sector=atoi(gsh); //131.
setviewport(0,60,400,80,0); //132.
outhz(0,20,"輸入文件名:",7); //133.
finame(100,80); //134.
fp=fopen(gsh,"wb"); //135.
biosdisk(0x02,0x80,head,cyl,sector,1,h); //136.
for(i=0;i<=511;i++) //137.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -