?? 飛翔理科ii.txt
字號:
else if(c==20){Head_paragraph[0]=seeklastCrLf(Head_paragraph[0]-2)+1;next_paragraph=Head_paragraph[0];}
else if(c==19){for(i=0;i<6;i++)Head_paragraph[0]=seeklastCrLf(Head_paragraph[0]-2)+1;next_paragraph=Head_paragraph[0];}
else if(c==14)continue;//next_paragraph=seeklastCrLf(Head_paragraph[0]-1);
}
thispage_begin=Head_paragraph[0];
}
void Delay_or_Inkey()
{
char inkey_value;
int RestTime;
inkey_value=0;
RestTime=(ms-200)/10;
while(RestTime)
{
if(CheckKey('q')){do inkey_value=getchar();while(inkey_value=='q') ReleaseKey(inkey_value);cmd=inkey_value;break;}
else
{
inkey_value=Inkey();
if(inkey_value){cmd=inkey_value;break;}
}
Delay(100);RestTime--;
}
//if(CheckKey('q')&&inkey_value)ReleaseKey(inkey_value);
}
long treat_SHIFT()
{
char SHIFT_cmd;
char time_cmd;
time_cmd=60;
do {
SHIFT_cmd=Inkey();
Delay(50);
time_cmd--;
}while(time_cmd&&(!SHIFT_cmd)&&(SHIFT_cmd!=KEY_SHIFT))
if(SHIFT_cmd==23){thispage_begin=dataBegin;cmd=255;return 1;}
else if(SHIFT_cmd==22){thispage_begin=dataEnd;cmd=255;return 2;}
else if(SHIFT_cmd=='l'){/*SetMark(3)*/;return 2;}
else if(SHIFT_cmd==KEY_ESC){if(FileType==2){KEY=SHIFT_cmd;return 27;}else{cmd=27;return 0;}}
else if((SHIFT_cmd==19)&&(FileType==2)){KEY=19;return 19;}
else if((SHIFT_cmd==14)&&(FileType==2)){KEY=14;return 14;}
else {cmd=255;KEY=0;return 0;}
}
void viewTEXT()
{
char tempchar;
thispage_end=dataBegin-1;
SHIFTaBYTE=0;
if(Auto_ByHand!='h')Auto_ByHand='a';
if(cmd!=255)cmd=0;
if(FileType==255){/*SetMark(3)*/;if(FileType==255)return;}
while(1)
{
if(cmd==21){if((thispage_begin==dataEnd)&&(FileType==2)&&(VTorId_i<VTorId_maxID)){KEY=14;return;}else set_nextline();}
else if(cmd==14){if((thispage_begin==dataEnd)&&(FileType==2)&&(VTorId_i<VTorId_maxID)){KEY=14;return;}else set_nextpage();}
else if(cmd==19){if((thispage_begin==dataBegin)&&(FileType==2)&&(VTorId_i>VTorId_minID)){KEY=19;return;}else set_lastpage();}
else if(cmd==20){if((thispage_begin==dataBegin)&&(FileType==2)&&(VTorId_i>VTorId_minID)){KEY=19;return;}else set_lastline();}
else if(cmd==27){if(FileType==1){if(EXITorNOT())return;else{cmd=255;continue;}}else{KEY=27;return;}}
else if(cmd=='.'){if(SHIFTaBYTE)SHIFTaBYTE=0;else SHIFTaBYTE=1;thispage_end=thispage_begin-1;set_nextpage();}//調整亂碼
else if(cmd==255){thispage_end=thispage_begin-1;set_nextpage();}//重復剛才的一頁
else if(cmd==254){cmd=getchar();if((cmd==14)&&(FileType==2)&&(VTorId_i<VTorId_maxID)){KEY=14;return;}continue;}
else if(cmd==KEY_SHIFT){tempchar=treat_SHIFT();if(tempchar<10)continue;else return;}
else if(cmd==28){print_6_paragraph(thispage_begin);cmd=255;continue;}
else set_nextpage();
if(Auto_ByHand=='a')Delay_or_Inkey();
}
}
char print_short(long from,char maxsize,char x,char y,int focus,int clear)
{
char size;
fseek(fp,from,0);
for(size=0;size<maxsize;size++)
{
filedata[size]=getc(fp);
if ((filedata[size]>127)&&(filedata[size]!=255))filedata[++size]=getc(fp);
else if((filedata[size]==255)||(size>=maxsize-1)||size>=200-4){size++;break;}
}
if(focus)CurrentSubDir_Name_p=from+size;
if(filedata[size-1]==255)
{
{if(focus)CurrentSubDir_Name_p=SubDir_name[CurrentSubDir-fromSubDir];}
filedata[size-1]=0;
}
else {filedata[size]='.';filedata[size+1]='.';filedata[size+2]=0;}
if(clear) ClearScreen();
if(focus)focus=8;else focus=0;
win(4);
TextOut(x,y,filedata,1+focus);
return size;
}
void dir_list()
{
char dir_list_i;
char dir_list_j;
char dir_list_SubDir;
dir_list_SubDir=fromSubDir;
fseek(fp,dir_add+3+dir_list_SubDir*2,0);
dir_list_i=0;
while((dir_list_SubDir<Num_of_SubDir)&&(dir_list_i<5))
{
SubDir_add[dir_list_i++]=getc(fp)+getc(fp)*256;
dir_list_SubDir++;
}
fseek(fp,dir_add+3+Num_of_SubDir*2,0);
dir_list_SubDir=fromSubDir;
while(dir_list_SubDir--)while (getc(fp)!=0xff);
dir_list_SubDir=fromSubDir;dir_list_i=0;
while((dir_list_SubDir<Num_of_SubDir)&&(dir_list_i<5))
{
SubDir_name[dir_list_i++]=ftell(fp);
if(dir_list_SubDir<Num_of_SubDir)while(getc(fp)!=0xff);
dir_list_SubDir++;
}
dir_list_SubDir=fromSubDir;
ClearScreen();
while ((dir_list_SubDir-fromSubDir)!=dir_list_i)
{
print_short(SubDir_name[dir_list_SubDir-fromSubDir],len_SubDir,12,(dir_list_SubDir-fromSubDir+1)*13+2,dir_list_SubDir==CurrentSubDir,dir_list_SubDir++==fromSubDir);
}
if(dir_p>3)dir_list_j=dir_p-3;else dir_list_j=0;
Refresh();
}
void printimage(long imageDataFrom,long READto,int width,int height,int x,int y,char imagetype,char fanxian)//imagetype(掃描線) 1>EBK;2 BMP
{
char i;
char c;
char read_x;
char read_y;
long Seek;
if (width>=20)read_x=20;else read_x=width;
if (height>=80)read_y=80;else read_y=height;
ClearScreen();
for(i=0;i<read_y;i++)
{
if(!imagetype)
{
fseek(fp,imageDataFrom,0);fread(READto,1,1600,fp);WriteBlock(0,0,160,80,1+fanxian,READto);break;
}
else if(imagetype==1)Seek=imageDataFrom+x+y*width;
else if(imagetype==2)Seek=imageDataFrom+width*(height-(y+1))+x;
fseek(fp,Seek,0);
fread(READto,1,read_x,fp);
if(imagetype==1)WriteBlock(0,i,read_x*8,1,1+fanxian,READto);
else if(imagetype==2)WriteBlock(0,i,read_x*8,1,1+fanxian,READto);
y++;//////////
}Refresh();
}
long viewBlock()
{
char viewBlock_width;
char viewBlock_height;
char viewBlock_x;
char viewBlock_y;
if(FileType!=2)
{
viewTEXT();
return -1;
}
//Inkey();
fseek(fp,BlockOffset+BlockID*9,0);
KEY=getc(fp);
dataBegin=getc(fp)+getc(fp)*256+getc(fp)*256*256;
dataEnd=getc(fp)+getc(fp)*256+getc(fp)*256*256;
if (KEY==0)
{
viewTEXT();
if(FileType==1)return -1;
return 0;
}
else
{
fseek(fp,dataBegin,0);
viewBlock_width=getc(fp);
viewBlock_height=getc(fp);
viewBlock_x=0;
viewBlock_y=0;
do {
printimage(dataBegin+2,filedata,viewBlock_width,viewBlock_height,viewBlock_x,viewBlock_y,1,0);
do KEY=getchar(); while((KEY!=23)&&(KEY!=22)&&(KEY!=21)&&(KEY!=20)&&(KEY!=27)&&(KEY!=14)&&(KEY!=19));
if(KEY==27)break;
else if((KEY==23)&&(viewBlock_x>0))viewBlock_x--;
else if((KEY==22)&&(viewBlock_x+20<viewBlock_width))viewBlock_x++;
else if((KEY==20)&&(viewBlock_y>0)){if(viewBlock_y>=8)viewBlock_y=viewBlock_y-8;else viewBlock_y=0;}
else if((KEY==21)&&(viewBlock_y+80<viewBlock_height)){if(viewBlock_y+88<=viewBlock_height)viewBlock_y=viewBlock_y+8;else viewBlock_y=viewBlock_height-80;}
ReleaseKey(23);ReleaseKey(22);ReleaseKey(20);ReleaseKey(21);
}while((KEY!=27)&&(KEY!=14)&&((KEY!=19)))
1;
return 1;
}
}
void viewtextorimagedir()
{
char FileType_info;
FileType_info=FileType;
if(FileType==2)
{
fseek(fp,VTorId_add+7,0);
VTorId_minID=getc(fp)+getc(fp)*256;
getc(fp);getc(fp);getc(fp);
VTorId_maxID=getc(fp)+getc(fp)*256;
VTorId_i=VTorId_minID;
}
else{
viewBlock();
if(FileType!=2)return;
}
while(1)
{
if(!fp)return;
if(FileType_info==2){KEY=0;BlockID=VTorId_i;viewBlock();if(FileType==1)return;}
if(VTorId_maxID==VTorId_minID)
{
break;
}
else
{
if(KEY==27){KEY=0;break;}
else if((KEY==14)&&(VTorId_i<VTorId_maxID))VTorId_i++;
else if((KEY==19)&&(VTorId_i>VTorId_minID))VTorId_i--;
//else if(VTorId_i==VTorId_maxID)break;
}
}
}
void viewEBK()
{
char c;
dir_p=0;
ebk_v_BEGIN=EBK_only_for_mark_begin;
ebk_v_END=EBK_only_for_mark_end;
if(FileType==2)
{
c=0;
dir_add=15;
CurrentSubDir_p[dir_p]=0;
fromSubDir=0;
fseek(fp,3,0);
BlockOffset=getc(fp)+getc(fp)*256+15;
}
else{viewtextorimagedir();if(FileType!=2)return;}
while(1)
{
if(!fp)return;
CurrentSubDir=CurrentSubDir_p[dir_p];
fromSubDir=CurrentSubDir-(CurrentSubDir%5);
fseek(fp,dir_add,0);
Num_of_SubDir=getc(fp);
parentdir=getc(fp)+getc(fp)*256;
dir_list();
CurrentSubDir_Name_p=SubDir_name[CurrentSubDir-fromSubDir];
while(1)
{
if(c!=29)
{if(((c=getchar())==13)||(c==27))break;}
else {dir_list();c=getchar();}
if((c==20)&&(CurrentSubDir>0))
{
CurrentSubDir--;
if(CurrentSubDir<fromSubDir){fromSubDir=fromSubDir-5;dir_list();}
else {
TextOut(12,(CurrentSubDir-fromSubDir+2)*13+2," ",1);
print_short(SubDir_name[CurrentSubDir+1-fromSubDir],len_SubDir,12,(CurrentSubDir-fromSubDir+2)*13+2,0,0);
print_short(SubDir_name[CurrentSubDir-fromSubDir],len_SubDir,12,(CurrentSubDir-fromSubDir+1)*13+2,1,0);
Refresh();
}
}
else if((c==21)&&(CurrentSubDir+1<Num_of_SubDir))
{
CurrentSubDir++;
if(CurrentSubDir>=fromSubDir+5){fromSubDir=fromSubDir+5;dir_list();}
else {
TextOut(12,(CurrentSubDir-fromSubDir)*13+2," ",1);
print_short(SubDir_name[CurrentSubDir-1-fromSubDir],len_SubDir,12,(CurrentSubDir-fromSubDir)*13+2,0,0);
print_short(SubDir_name[CurrentSubDir-fromSubDir],len_SubDir,12,(CurrentSubDir-fromSubDir+1)*13+2,1,0);
Refresh();
}
}
else if ((c==14)&&(fromSubDir+5<Num_of_SubDir))
{
if(CurrentSubDir+5<Num_of_SubDir)
{CurrentSubDir=CurrentSubDir+5;fromSubDir=fromSubDir+5;}
else{CurrentSubDir=Num_of_SubDir-1;fromSubDir=fromSubDir+5;}
dir_list();
}
else if ((c==19)&&(CurrentSubDir>4))
{
CurrentSubDir=CurrentSubDir-5;
fromSubDir=fromSubDir-5;
dir_list();
}
else if(c==22)
{
TextOut(12,(CurrentSubDir-fromSubDir+1)*13+2," ",1);
print_short(CurrentSubDir_Name_p,len_SubDir,12,(CurrentSubDir-fromSubDir+1)*13+2,1,0);
Refresh();
}
//else if(c==29){if(DELETEorNOT())return;}
CurrentSubDir_p[dir_p]=CurrentSubDir;
}
if (c==27)
{
fseek(fp,dir_add+1,0);
parentdir=getc(fp)+getc(fp)*256;
if(parentdir==0) {if(EXITorNOT())return;}
else {dir_add=parentdir;CurrentSubDir_p[dir_p]=0;dir_p--;fromSubDir=CurrentSubDir_p[dir_p]/5*5;}
}
else if (c==13)
{
dir[dir_p]=SubDir_name[CurrentSubDir-fromSubDir];
fseek(fp,SubDir_add[CurrentSubDir-fromSubDir],0);
if(getc(fp)==0){VTorId_add=SubDir_add[CurrentSubDir-fromSubDir];viewtextorimagedir();if(FileType==1)return;}
else {dir_add=SubDir_add[CurrentSubDir-fromSubDir];CurrentSubDir_p[dir_p]=CurrentSubDir;dir[dir_p++]=SubDir_name[CurrentSubDir-fromSubDir];CurrentSubDir=0;fromSubDir=0;}
}
}
}
char readAfile()
{
char FileTypeS[5];
int Mem_add1;
int Mem_add2;
char i;
if(FileType==255){/*viewTEXT();*/viewEBK();FileType=0;fclose(fp);fp=0;return 1;}
else if(!fopen_fp())return 0;
FileType=0;FileTypeS[0]=0;
Mem_add1=filestr;Mem_add2=0;
FileType=2;
viewEBK();
if(fp){fclose(fp);fp=0;}
return 1;
}
void Text()
{
char i;
long temp_var;
char c;
if ((fp=fopen(textfilename,"r"))==0)
{
win(1);
cai(subject+1);
TextOut(3,35,"文件打開錯誤!",1);
TextOut(3,50,"請重新下載該文件。",1);
TextOut(3,65,"錯誤文件:",1);
TextOut(63,65,textfilename,1);
Refresh();
getchar();
return;
}
else {
SetScreen(1);
c=0;pathpoint=0;
DatFileIsOK=0;
fclose(fp);
if(CheckKey(KEY_SHIFT))FileType=255;
readAfile();
}
}
//**********************************************************************************
//================================================
//主程序
void main()
{
start();
jdx=10;jdy=10;zuox=80;zuoy=40;
for(;;)
{
menu();
ii=ii+yy;
//數學
if(subject==0)
{
if(ii==1)
{
if(e==1)genshi();
if(e==2)fenshu();
if(e==3)yinshu();
if(e==4)yueshu();
if(e==5)panduanzhishu();
if(e==6)xunzhaozhishu();
}
if(ii==2)
{
if(e==1);
if(e==2)err();
if(e==3)err();
if(e==4)err();
if(e==5)err();
if(e==6)err();
}
if(ii==3)
{
if(e==1)fangcheng();
if(e==2);
if(e==3);
if(e==4)err();
if(e==5)err();
if(e==6)err1();
}
if(ii==4)
{
if(e==1);
if(e==2);
if(e==3);
if(e==4);
if(e==5);
if(e==6)err();
}
if(ii==5)
{
if(e==1)pai();
if(e==2)zu();
if(e==3);
if(e==4)err();
if(e==5)err();
if(e==6)err();
}
if(ii==6)
{
if(e==1);
if(e==2);
if(e==3);
if(e==4);
if(e==5);
if(e==6);
}
if(ii==7)
{
if(e==1);
if(e==2);
if(e==3);
if(e==4);
if(e==5)err();
if(e==6)err();
}
if(ii==8)
{
if(e==1)yicihanshu();
if(e==2)ercihanshu();
if(e==3)err();
if(e==4)err();
if(e==5)err();
if(e==6)err();
}
if(ii==9)
{
if(e==1);
if(e==2);
if(e==3)err();
if(e==4)err();
if(e==5)err();
if(e==6)err();
}
if(ii==10)
{
if(e==1);
if(e==2);
if(e==3)err();
if(e==4)err();
if(e==5)err();
if(e==6)err();
}
if(ii==11)
{
if(e==1){strcpy(textfilename,"/FLY/SX_1.dat");Text();};;
if(e==2){strcpy(textfilename,"/FLY/SX_2.dat");Text();};
if(e==3)err();
if(e==4)err();
if(e==5)err();
if(e==6)err();
}
}
//物理
if(subject==1)
{
if(ii==1)
{
if(e==1);
if(e==2);
if(e==3);
if(e==4);
if(e==5);
if(e==6);
}
if(ii==2)
{
if(e==1);
if(e==2);
if(e==3);
if(e==4);
if(e==5);
if(e==6);
}
if(ii==3)
{
if(e==1){strcpy(textfilename,"/FLY/WL_1.dat");Text();};
if(e==2){strcpy(textfilename,"/FLY/WL_2.dat");Text();};
if(e==3)err();
if(e==4)err();
if(e==5)err();
if(e==6)err();
}
}
//化學
if(subject==2)
{
if(ii==1)
{
if(e==1);
if(e==2);
if(e==3);
if(e==4)err1();
if(e==5)err();
if(e==6)err();
}
if(ii==2)
{
if(e==1)fenzishi();
if(e==2);
if(e==3)err();
if(e==4)err();
if(e==5)err();
if(e==6)err();
}
if(ii==3)
{
if(e==1){strcpy(textfilename,"/FLY/HX_1.dat");Text();};
if(e==2){strcpy(textfilename,"/FLY/HX_4.dat");Text();};
if(e==3){strcpy(textfilename,"/FLY/HX_3.dat");Text();};
if(e==4)err();
if(e==5){strcpy(textfilename,"/FLY/HX_2.dat");Text();};
if(e==6)dianziyun();
}
}
//生物
if(subject==3)
{
if(ii==1)
{
if(e==1)mimazi();
if(e==2);
if(e==3);
if(e==4)err();
if(e==5)err();
if(e==6)err();
}
if(ii==2)
{
if(e==1)fanshehu();
if(e==2)danbaizhi();
if(e==3)err();
if(e==4)err();
if(e==5)err();
if(e==6)err();
}
if(ii==3)
{
if(e==1);
if(e==2);
if(e==3)fenli();
if(e==4);
if(e==5);
if(e==6)err();
}
if(ii==4)
{
if(e==1)biaozhi();
if(e==2);
if(e==3)pinlu();
if(e==4)err();
if(e==5)err();
if(e==6)err();
}
if(ii==5)
{
if(e==1){strcpy(textfilename,"/FLY/SW_1.dat");Text();};
if(e==2);
if(e==3)err();
if(e==4)err();
if(e==5)err();
if(e==6)err();
}
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -