home *** CD-ROM | disk | FTP | other *** search
Text File | 1992-11-23 | 44.4 KB | 1,409 lines |
- /* ╕─╢»╦╡├≈(1992─Ω11╘┬):
- 1.╘┌í░▒α╝¡▒¿▒φ╕±╩╜í▒▓╦╡Ñ╣ª─▄╧┬╡─╫ε╧┬╠ß╩╛╨╨╬▐╤╒╔½íú╧╓╕─╒²ú¼╟╥┤φ╬≤╠ß╩╛╙╨┴╦╖ó╔∙
- ▒¿╛»;
- 2.╘┌í░┤┼┼╠▓┘╫≈í▒╓╨╡─╕─▒Σ╣ñ╫≈┤┼┼╠╥╗╧εú¼╚τ╓▒╜╙╗╪│╡╘≥╘▌╩▒═╦│÷╧╡═│íú╧╓╕─╒²;
- 3.╫ε│⌡╚τ▓╗╢¿╥σ╕±╩╜╬─╝■ú¼╘≥▒α╝¡═Ω║≤┤µ┼╠╜½│÷┤φú¿┤µ▓╗╔╧┼╠ú⌐íú╧╓╕─╒²;
- 4.╘┌í░┤┼┼╠▓┘╫≈í▒═Ω║≤ú¼▒╪╨δ╧╚░┤ESC╝ⁿ▓┼─▄╜°╨╨╞Σ╦ⁿ▓╦╡Ñ╡─▓┘╫≈íú╧╓╕─│╔┐╔╓▒╜╙╙├
- í√íóí·┴╜╝ⁿ╫¬╡╜╞Σ╦ⁿ▓╦╡Ñú¼╟╥╘┌╓≈▓╦╡Ñ╧┬╥▓┐╔╙├í²╣Γ▒Ω╝ⁿ╜°╨╨╤í╘±ú¿╧α╡▒╙┌╗╪│╡ú⌐;
- 5.╔·│╔╡─╘┤│╠╨≥▒¿▒φ╓╗─▄┤≥╙í╥╗╖▌íú╧╓╕─╒²;
- 6.╘┌í░╔·│╔▒¿▒φ│╠╨≥í▒╥╗╧ε╓╨╩Σ╚δ╬─╝■├√╩▒ú¼╚τ╓▒╜╙░┤╗╪│╡╗≥ESC╝ⁿ╘≥╞┴─╗╜½╗∞┬╥íú╧╓╕─╒²;
- 7.╢α┐Γ▓┘╫≈╩▒ú¼├┐╕÷┐Γ╡─├√╫╓╓╗─▄╙╨10╕÷╫╓╖√ú¼╢°╡▒╕├┐Γ╩╟╣▓╧φ┐Γ╩▒ú¼╞Σ┬╖╛╢╡─╫╓╖√│ñ
- ╢╚═∙═∙│¼╣²10╕÷╫╓╖√íú╧╓╕─│╔├┐╕÷┐Γ├√╫╓╫ε│ñ30╕÷╫╓╖√;
- 8.╢α┐Γ┴¼╜╙▒φ┤∩╩╜╫ε│ñ╓╗╙╨30╕÷╫╓╖√íú╧╓╕─│╔╬¬45╕÷╫╓╖√;
- 9.╘┌╙╨╡─CCDOS╧╡═│╓╨ú¼╝ⁿ┼╠╙╥▒▀╡─╗╪│╡╝ⁿ▓╗─▄╙├íú╧╓╕─╒²íú
-
- */
-
- /*#include <stdlib.h>*/
- /*#include <dos.h>*/
- /*#include <dir.h>*/
- #include <stdio.h>
- #include <string.h>
-
- #define white 7
- #define yellow 14
- #define blue_back 16
- #define black 0
- int left_space,page_line;
- char main_biao[50];
- char main_biao1[50];
- char main_size;
- char assi_biao[50];
- char assi_biao1[50];
- char assi_size;
- char left_top[40];
- char right_top[40];
- char tail_size;
- char text_size;
- char tail_boot[40];
- char midd_int[4];
- char midd_int1[4];
- char midd_int2[2];
- char filename[9][30];
- char joinname[45];
- int filectc;
- char filename1[15];
- char filename2[15];
- int x,y;
- char level[11][3];
- char scr[80][312];
- int curr,curc;
- int Ins;
- int width;
- int scrrow[100],scrcol[100];
- char scrval[100][200];
- int count4,count3;
- int real_width;
- FILE *fp,*stream;
-
- /*-------------------------------main-------------------------------------*/
- main()
- {
- int i,j,m,n,hanzi,cont,rval;
- strcpy(level[0],"⌐ª");strcpy(level[1],"⌐ñ");strcpy(level[2],"⌐α");
- strcpy(level[3],"⌐╨");strcpy(level[4],"⌐└");strcpy(level[5],"⌐╚");
- strcpy(level[6],"⌐╪");strcpy(level[7],"⌐░");strcpy(level[8],"⌐┤");
- strcpy(level[9],"⌐╕");strcpy(level[10],"⌐╝");
- width=312;
- count4=0;count3=0;
- for (i=0;i<100;i++)
- {
- strcpy(scrval[i],NULL);
- scrrow[i]=0;
- scrcol[i]=0;
- }
- for (i=0;i<80;i++)
- {
- for (j=0;j<width;j++)
- scr[i][j]='\n';
- }
- clear(); hanzi=0; curr=-1;curc=0;
- main_menu(hanzi);
- setcursor(4,10);
- printf("\033[5;31;44m⌐│⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐╖");
- setcursor(5,10);
- printf("⌐º ⌐º");
- setcursor(6,10);
- printf("⌐º ╬ó╗·╣▄└φ╚φ╝■╜≡╨┼ ú╬ú─ú┬ú┴ú╟ú│ú«ú░░µ╧╡┴╨▓·╞╖╓«╢■ ⌐º");
- setcursor(7,10);
- printf("⌐º ⌐º");
- setcursor(8,10);
- printf("⌐╟⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐╧");
- setcursor(9,10);
- printf("⌐º ⌐º");
- setcursor(10,10);
- printf("⌐º ╛▀╙╨═│╝╞╙δ╝╞╦π╣ª─▄╡─╚╬╥Γ╕±╩╜▒¿▒φ╔·│╔╞≈ ⌐º");
- setcursor(11,10);
- printf("⌐º ú┴ú╬ú┘ú▀ú╥ú┼ú╨ú╧ú╥ú╘ ú╡ú«ú░░µ ⌐º");
- setcursor(12,10);
- printf("⌐º ⌐º");
- setcursor(13,10);
- printf("⌐º ╓╨ ╨┼ ╜≡ ╩⌠ ╣½ ╦╛ ╝╝ ╩⌡ ┐¬ ╖ó ▓┐ ⌐º");
- setcursor(14,10);
- printf("⌐º ⌐º");
- setcursor(15,10);
- printf("⌐º ╥╗ ╛┼ ╛┼ ╢■ ─Ω ╩« ╥╗ ╘┬ ⌐º");
- setcursor(16,10);
- printf("⌐º ⌐º");
- setcursor(17,10);
- printf("⌐º ⌐º");
- setcursor(18,10);
- printf("⌐º ⌐º");
- setcursor(19,10);
- printf("⌐º ⌐º");
- setcursor(20,10);
- printf("⌐º ░┤ ╚╬ ╥Γ ╝ⁿ ╝╠ ╨° ... ⌐º"); setcursor(21,10);
- printf("⌐╗⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐┐");
-
- getch();
- clear_win(1,0,23,79,6,0);
-
- while ((cont=getchb())!=27) {
- operer:
- switch(cont){
- case 0:rval=disk_oper();
- if (rval==-1) hanzi=(hanzi==0)?3:hanzi-1;
- if (rval==1) hanzi=(hanzi==3)?0:hanzi+1;
- break;
- case 1:clear();
- setcursor(0,25);
- printf("╢¿ ╥σ ╗≥ ╨▐ ╕─ ▒¿ ▒φ ▓╬ ╩²");
- pri_form(1,5,22,75);
- paramet(); clear_win(1,0,23,79,6,0); break;
- case 2:
- biao_form();
- clear_win(1,0,23,79,6,0);break;
- case 3:for (i=0;i<80;i++) {
- if (scr[i][0]=='\n') continue;
- for (j=311;(j>=0)&&(scr[i][j]=='\n'||scr[i][j]==' ');j--)
- scr[i][j]='\n';
- }
- reenter:gframe(2,57,4,77,1,white);
- setcursor(2,61);printf("╔·│╔╬─╝■├√");
- setcursor(3,61);
- oneline(4*100+61,8,8,filename2);
- if (filename2[0]!=NULL)
- {
- if (strchr(filename2,'.')==NULL) strcat(filename2,".prg");
- stream=fopen(filename2,"w");
- if (stream==NULL) {printf("\007");goto reenter;}
- generate();
- setcursor(3,60);
- printf("\007╔· │╔ ═Ω ▒╧ ...");
- fclose(stream);
- getchb();
- }
- clear_win(2,57,4,78,6,0);
- break;
- case 275:hanzi=(hanzi==0)?3:hanzi-1;
- break;
- case 277:hanzi=(hanzi==3)?0:hanzi+1;
- break;
- case 280: /*Down Arrow*/
- case 13 :cont=hanzi;
- goto operer;
- }
- main_menu(hanzi); }
- }
-
- biao_form()
- {
- int dow[2],dol[2];
- int dcount1,dcount2;
- int i,j,m,n,hanzi;
- int srow[2],scol[2];
- int logic;
- char mid[80],c1,c2;
- int charact;
- /* strcpy(level[0],"⌐ª");strcpy(level[1],"⌐ñ");strcpy(level[2],"⌐α");
- strcpy(level[3],"⌐╨");strcpy(level[4],"⌐└");strcpy(level[5],"⌐╚");
- strcpy(level[6],"⌐╪");strcpy(level[7],"⌐░");strcpy(level[8],"⌐┤");
- strcpy(level[9],"⌐╕");strcpy(level[10],"⌐╝");*/
- dcount1=dcount2=0; clear();
- x=1; y=0; setcursor(x,y); curr=-1; curc=0;
- for (x=1;x<24;x++) {
- setcursor(x,0);
- for (y=0;y<78;y++) {
- if (scr[curr+x][y]!='\n') printf("%c",scr[curr+x][y]);
- /* else printf(" ");*/
- }
- }
- count3=0;
- setcursor(1,0); display();
- while ((charact=getchb())!=27){ switch (charact){
- case 12:getcursor(&x,&y);
- if ((curc+y)%2==0){
- setcursor(24,0);
- printf("\007╣Γ ▒Ω ┴╨ ╩² ▒╪ ╨δ ╬¬ ╞µ ╩²ú¼╝ⁿ ╚╬ ╥Γ ╝ⁿ ╝╠ ╨° ... ");
- getchb();setcursor(x,y);display();break;}
- srow[count3]=x+curr;scol[count3++]=curc+y;
- if (count3!=2) break;
- if (srow[0]>srow[1])
- {
- m=srow[0]; srow[0]=srow[1]; srow[1]=m;
- }
- if (scol[0]>scol[1])
- {
- m=scol[0]; scol[0]=scol[1]; scol[1]=m;
- }
- for (m=srow[0];m<=srow[1];m++)
- for (n=0;n<=scol[1]+1;n++)
- if (scr[m][n]=='\n') scr[m][n]=' ';
- if (srow[0]==srow[1]){
- lline(srow[0],scol[0],scol[1]);count3=0;continue;}
- if (scol[1]==scol[0]){
- hline(scol[0],srow[0],srow[1]);count3=0;continue;}
- lline(srow[0],scol[0],scol[1]);
- hline(scol[1],srow[0],srow[1]);
- hline(scol[0],srow[0],srow[1]);
- lline(srow[1],scol[0],scol[1]);
- count3=0;
- display(); break;
- case 38:getcursor(&x,&y);
- for (i=curc+y;(i>=0)&&(scr[curr+x][i]=='\n');i--)
- scr[curr+x][i]=' ';
- putchar(charact);scr[curr+x][curc+y]='&';
- value_exp();
- for(i=0;i<count4;i++) {
- if (scrrow[i]==x+curr&&scrcol[i]==y+curc){
- /* setcursor(12,5);
- printf("%s",scrval[i]);*/ oneline(1306,200,50,scrval[i]);
- setcursor(x,y); display(); break;}
- }
- if (i<count4) {value_clear(); setcursor(x,y); break;}
- scrrow[count4]=x+curr;scrcol[count4]=y+curc;
- /* readfile(filename[0]);*/
- oneline(1306,200,50,scrval[count4]);
- value_clear();
- count4++;
- setcursor(x,y); display(); break;
- case 20:getcursor(&x,&y);
- if ((y+curc)%2==0){
- setcursor(24,0);
- printf("\007╣Γ ▒Ω ┴╨ ╩² ▒╪ ╨δ ╬¬ ╞µ ╩²ú¼ ╝ⁿ ╚╬ ╥Γ ╝ⁿ ╝╠ ╨° ... ");
- getchb();setcursor(x,y);display();break;}
- dow[dcount2]=curr+x;dol[dcount2++]=curc+y;
- if (((dcount2%2)==0)&&(dol[0]==dol[1])){
- if (dow[0]>dow[1]){
- i=dow[0];dow[0]=dow[1];dow[1]=i;}
- for (i=dow[0];i<=dow[1];i++){
- mid[0]=scr[i][dol[0]];mid[1]=scr[i][dol[0]+1];mid[2]='\0';
- if (streq(mid,level[0])){
- scr[i][dol[0]]=' ';scr[i][dol[0]+1]=' ';
- continue;}
- logic=0;
- for (j=2;j<11;j++)
- logic=logic||streq(mid,level[j]);
- logic=logic||streq(mid,level[0]);
- if (logic&&(i!=dow[0])&&(i!=dow[1])){ scr[i][dol[0]]=level[1][0];scr[i][dol[0]+1]=level[1][1];continue;}
- if (i==dow[0]){
- logic=streq(mid,level[3])||streq(mid,level[7])||streq(mid,level[8]);
- if (logic){
- scr[i][dol[0]]=level[1][0];scr[i][dol[0]+1]=level[1][1];continue;}
- if (streq(mid,level[2])){
- scr[i][dol[0]]=level[6][0];scr[i][dol[0]+1]=level[6][1];continue;}
- if (streq(mid,level[4])){
- scr[i][dol[0]]=level[9][0];scr[i][dol[0]+1]=level[9][1];continue;}
- if (streq(mid,level[5])){
- scr[i][dol[0]]=level[10][0];scr[i][dol[0]+1]=level[10][1];continue;}
- }
- if (i==dow[1]){
- logic=streq(mid,level[6])||streq(mid,level[9])||streq(mid,level[10]);
- if (logic){
- scr[i][dol[0]]=level[1][0];scr[i][dol[0]+1]=level[1][1];continue;}
- if (streq(mid,level[2])){
- scr[i][dol[0]]=level[3][0];scr[i][dol[0]+1]=level[3][1];continue;}
- if (streq(mid,level[4])){
- scr[i][dol[0]]=level[7][0];scr[i][dol[0]+1]=level[7][1];continue;}
- if (streq(mid,level[5])){
- scr[i][dol[0]]=level[8][0];scr[i][dol[0]+1]=level[8][1];continue;}
- }
- }
- if (dow[0]<curr){
- for (i=curr;i<=dow[1];i++){
- setcursor(i-curr,dol[0]-curc);
- printf("%c%c",scr[i][dol[0]],scr[i][dol[0]+1]);} }
- if (dow[1]>curr+23){
- for (i=dow[0];i<curr+24;i++){
- setcursor(i-curr,dol[0]-curc);
- printf("%c%c",scr[i][dol[0]],scr[i][dol[0]+1]);}
- }
- if (dow[0]>=curr&&dow[1]<=curr+23){
- for (i=dow[0];i<=dow[1];i++){
- setcursor(i-curr,dol[0]-curc);
- printf("%c%c",scr[i][dol[0]],scr[i][dol[0]+1]);}
- }
- dcount2=0;}
- if (dcount2%2==0&&dol[0]!=dol[1]) dcount2=0;
- display();break;
- case 4:getcursor(&x,&y);
- if ((y+curc)%2==0){
- setcursor(24,0);
- printf("\007╣Γ ▒Ω ┴╨ ╩² ▒╪ ╨δ ╬¬ ╞µ ╩²ú¼╝ⁿ ╚╬ ╥Γ ╝ⁿ ╝╠ ╨° ... ");
- getchb();setcursor(x,y);display();break;}
- dow[dcount1]=curr+x;dol[dcount1++]=curc+y;
- if (((dcount1%2)==0)&&(dow[0]==dow[1])){
- if (dol[0]>dol[1]){
- i=dol[0];dol[0]=dol[1];dol[1]=i;}
- for (i=dol[0];i<=dol[1];i=i+2){
- mid[0]=scr[dow[0]][i];mid[1]=scr[dow[1]][i+1];mid[2]='\0';
- if (streq(mid,level[1])){
- scr[dow[0]][i]=' ';scr[dow[0]][i+1]=' ';continue;}
- logic=0; for(j=2;j<11;j++)
- logic=logic||streq(mid,level[j]);
- if (logic&&(i!=dol[0])&&(i!=dol[1])){
- scr[dow[0]][i]=level[0][0];scr[dow[0]][i+1]=level[0][1];continue;}
- if (i==dol[0]){
- logic=streq(mid,level[4])||streq(mid,level[7])||streq(mid,level[9]);
- if (logic){
- scr[dow[0]][i]=level[0][0];scr[dow[0]][i+1]=level[0][1];continue;}
- if (streq(mid,level[2])){
- scr[dow[0]][i]=level[5][0];scr[dow[0]][i+1]=level[5][1];continue;}
- if (streq(mid,level[3])){
- scr[dow[0]][i]=level[8][0];scr[dow[0]][i+1]=level[8][1];continue;}
- if (streq(mid,level[6])){
- scr[dow[0]][i]=level[10][0];scr[dow[0]][i+1]=level[10][1];continue;}
- }
- if (i==dol[1]){
- logic=streq(mid,level[5])||streq(mid,level[8])||streq(mid,level[10]);
- if (logic){
- scr[dow[0]][i]=level[0][0];scr[dow[0]][i+1]=level[0][1];continue;}
- if (streq(mid,level[2])){
- scr[dow[0]][i]=level[4][0];scr[dow[0]][i+1]=level[4][1];continue;}
- if (streq(mid,level[6])){
- scr[dow[0]][i]=level[9][0];scr[dow[0]][i+1]=level[9][1];continue;}
- if (streq(mid,level[3])){
- scr[dow[0]][i]=level[7][0];scr[dow[0]][i+1]=level[7][1];continue;}
- }
- } if (dol[0]<curc){
- i=curc; setcursor(dow[0]-curr,i-curc);
- while (i<=dol[1]+1){
- printf("%c",scr[dow[0]][i++]);}
- }
- if (dol[1]>curc+79){
- setcursor(dow[0]-curr,dol[0]-curc);
- for (i=dol[0];i<curc+80;i++)
- printf("%c",scr[dow[0]][i]);
- }
- if ((dol[0]>=curc)&&(dol[1]<=curc+79)){
- setcursor(dow[0]-curr,dol[0]-curc);
- for (i=dol[0];i<=dol[1]+1;i++)
- printf("%c",scr[dow[0]][i]);
- }
- dcount1=0;}
- if ((dcount1%2==0)&&(dow[0]!=dow[1])) dcount1=0;
- display(); break;
- case 5:getcursor(&x,&y);
- for (j=0;j<count4;j++)
- if ((scrrow[j]==x+curr)&&(scrcol[j]==y+curc)){
- scrval[j][0]=' ';scrval[j][1]='\0';
- scr[curr+x][curc+y]=' ';break;} setcursor(x,y);printf(" ");
- display(); break;
- case 259:help();
- clear_win(1,0,24,79,6,0);
- display_all();
- break;
- case 260:save_format(); break;
- case 272:top_move(); break;
- case 280:bottom_move(); break;
- case 275:left_move(); break;
- case 277:right_move(); break;
- case 271:row_head(); break;
- case 279:row_tail(); break;
- case 273:last_page(); break;
- case 281:next_page(); break;
- case 282:Ins=(Ins==0)?1:0; break;
- case 9:getcursor(&x,&y);
- if (curc>=432) break;
- if (y+10>75) {
- curc=curc+39; display_all();
- y=y-39;
- }
- y=y+10; setcursor(x,y); break;
- case 1:getcursor(&x,&y);
- if ((y-10<0)&&(curc==0)) {setcursor(x,0); break;}
- if ((y-10<0)&&(curc!=0)) {
- curc=curc-39; y=y+39;
- display_all();
- } y=y-10; setcursor(x,y); break;
- case 8:getcursor(&x,&y);
- if ((y==0)&&(curc==0)) break;
- if ((y==0)&&(curc!=0)) {
- curc=curc-39; y=y+39;
- display_all();
- setcursor(x,y);
- }
- n=y+curc;
- while (scr[curr+x][n]!='\n'){
- if (scr[curr+x][n]=='&')
- for (i=0;i<count4;i++)
- if ((scrrow[i]==curr+x)&&(scrcol[i]==n))
- scrcol[i]=n-1;
- scr[curr+x][n-1]=scr[curr+x][n];
- n++;}
- scr[curr+x][n-1]=scr[curr+x][n];
- setcursor(x,0);
- for (m=curc;(m<curc+78)&&(m<width);m++){
- if (scr[curr+x][m]!='\n') printf("%c",scr[curr+x][m]);
- else printf(" ");
- }
- /* display_row();*/
- setcursor(x,y-1);
- break;
- case 283:getcursor(&x,&y); m=curc+y;
- if (scr[curr+x][curc+y]=='\n') break;
- while (scr[curr+x][m]!='\n'){
- if (scr[curr+x][m]=='&')
- for (i=0;i<count4;i++)
- if ((scrrow[i]==curr+x)&&(scrcol[i]==m))
- scrcol[i]=scrcol[i]-1;
- scr[curr+x][m]=scr[curr+x][m+1]; m++;}
- setcursor(x,0);
- for (m=curc;(m<curc+78)&&(m<width);m++){
- if (scr[curr+x][m]!='\n') printf("%c",scr[curr+x][m]);
- else printf(" ");
- }
- /* display_row();*/
- setcursor(x,y); break;
- case 25:getcursor(&x,&y);
- logic=0; for (i=0;i<width;i++)
- if (scr[curr+x][i]=='&') logic=1;
- if (logic==1) break;
- else{
- for (i=0;i<count4;i++)
- if (scrrow[i]>=curr+x) scrrow[i]=scrrow[i]-1;
- }
- for (m=curr+x;m<79;m++){
- for (n=0;n<width;n++)
- scr[m][n]=scr[m+1][n];}
- setcursor(1,0);
- display_all(); setcursor(x,0);
- break;
- case 14:getcursor(&x,&y);
- for (i=0;i<count4;i++)
- if (scrrow[i]>=curr+x) scrrow[i]=scrrow[i]+1;
- for (m=78;m>=curr+x;m--)
- for (n=0;n<width;n++)
- scr[m+1][n]=scr[m][n];
- for (n=0;n<width;n++)
- scr[curr+x][n]='\n';
- downmove(x,23,1); setcursor(x,0);
- display_row();
- setcursor(x,0);
- display(); break;
- case 13:getcursor(&x,&y);
- if (scr[x+curr][y+curc]=='&') {
- for (i=0;i<count4;i++)
- if (scrrow[i]==x+curr&&scrcol[i]==y+curc) {
- value_exp();
- /* setcursor(12,5);
- printf("%s",scrval[i]);*/
- oneline(1306,200,50,scrval[i]);
- value_clear();
- }
- setcursor(x,y);
- break;
- }
- if (curc==0&&x<23) {setcursor(x+1,0); break;}
- if (curc!=0) curc=0;
- if (x==23) curr++;
- else x++;
- display_all(); setcursor(x,0);
- break;
- default: getcursor(&x,&y);
- if (y+1>74){
- curc=curc+40;
- display_all(); y=y-40;
- setcursor(x,y);
- break;
- }
- if ((charact<=26)||(charact>255)) break;
- n=y+curc;
- putchar(charact);
- if (scr[curr+x][n]=='\n'){
- scr[curr+x][n]=charact;
- n--;
- while (scr[curr+x][n]=='\n') scr[curr+x][n--]=' ';
- break;
- }
- switch(Ins){
- case 1:while (scr[curr+x][n]!='\n') {
- if (scr[curr+x][n]=='&') {
- for (i=0;i<count4;i++)
- if ((scrrow[i]==curr+x)&&(scrcol[i]==n))
- scrcol[i]=n+1;
- } n++;
- }
- while (n>y+curc){
- scr[curr+x][n]=scr[curr+x][n-1];
- n--;}
- scr[curr+x][y+curc]=charact; getcursor(&x,&y);
- display_row(); setcursor(x,y);
- break;
- case 0:if (scr[curr+x][n]=='&') {
- setcursor(x,y); putchar('&'); break;
- }
- scr[curr+x][n]=charact;
- break;
- }
- }
- display();
- }
- setcursor(23,0);printf(" ");
- setcursor(23,0);printf("╩╟ ╖± ╜½ ╕± ╩╜ ╬─ ╝■ ┤µ ┼╠(Y/N)");
- charact=getchb();
- if ((charact=='y')||(charact=='Y')) save_format();
- return(1);
- }
-
- /*-------------------------------display_all-------------------------------*/
- display_all()
- {
- int curbuf;
- clear(); curbuf=x;
- for (x=1;x<24;x++)
- if (x+curr<80) {setcursor(x,0); display_row();}
- x=curbuf;
- }
- /*-------------------------------right_move--------------------------------*/
- right_move()
- {
- getcursor(&x,&y);
- if (y+curc==width-2) return(0);
- if (y+1<75) setcursor(x,y+1);
- else {
- curc=curc+39;
- display_all(); y=y-39; setcursor(x,y);
- }
- }
- /*--------------------------------left_move--------------------------------*/
- left_move()
- {
- getcursor(&x,&y);
- if ((y==0)&&(curc==0)) return(0);
- if ((y==0)&&(curc!=0)) {
- curc=curc-39; y=y+39; display_all();
- }
- setcursor(x,y-1);
- }
- /*---------------------------------top_move-------------------------------*/
- top_move()
- {
- int curbuf;
- getcursor(&x,&y);
- if (x>1) { setcursor(x-1,y); return(0);}
- if (curr==-1) return(1);
- curr--; downmove(1,23,1); setcursor(x,0);
- display_row(); setcursor(x,y);
- }
- /*---------------------------------bottom_move-----------------------------*/
- bottom_move(){
- int curbuf;
- getcursor(&x,&y);
- if (curr+x==79) return(0);
- if (x<23) {setcursor(x+1,y); return(0);}
- curr++; curbuf=x;
- upmove(1,23,1); setcursor(x,0);
- display_row();
- setcursor(curbuf,y);
- }
- /*---------------------------------last_page-------------------------------*/
- last_page()
- {
- getcursor(&x,&y);
- curr = (curr - 20 < -1)?-1:curr-20;
- clear_win(1,0,24,79,6,0);
- display_all(); setcursor(x,y);
- }/*---------------------------------next_page-------------------------------*/
- next_page()
- {
- getcursor(&x,&y);
- curr = (curr + 20 > 79)?79:curr+20; x=1;
- clear(1,0,24,79,6,0);
- display_all(); setcursor(x,y);
- }
- /*---------------------------------row_head--------------------------------*/
- row_head()
- {
- int curbuf;
- getcursor(&x,&y); curbuf=x;
- if (curc==0) {setcursor(x,0); return(0);}
- curc=0;
- display_all(); setcursor(curbuf,0);
- }
- /*----------------------------------row_tail-------------------------------*/
- row_tail()
- {
- int curbuf,m;
- getcursor(&x,&y); curbuf=x;
- for (m=0;scr[x+curr][m]!='\n';m++);
- curc=(m/39)*39; y=m%39;
- display_all(); setcursor(curbuf,y);
- }
- /*----------------------------------display------------------------------*/
- display()
- {
- getcursor(&x,&y);
- x=x & 0x0ff;
- setcursor(24,0);
- if (Ins==1)
- printf("\033[0;34;41m ╣Γ ▒Ω ╨╨ ║┼:%2d ┴╨ :%2d ▓σ ╚δ ",curr+x+1,curc+y);
- if (Ins==0)
- printf("\033[0;34;41m ╣Γ ▒Ω ╨╨ ║┼:%2d ┴╨ :%2d ╕▓ ╕╟ ",curr+x+1,curc+y);
- printf("\033[0;0;0m");
- setcursor(x,y);
- }
- /*------------------------------parameter---------------------------------*/
- paramet(){
- char judge;
- int i,j;
- setcursor(2,10);
- left_space=atoi(midd_int);
- printf("╫≤ ┐╒ ╕± : %d",left_space);
- setcursor(2,40);
- page_line=atoi(midd_int1);
- printf("├┐╥│╨╨╩² : %d",page_line);
- setcursor(3,10);
- printf("╓≈ ▒Ω ╠Γ : %s",main_biao);
- setcursor(4,22);
- printf("%s",main_biao1);
- setcursor(5,10);
- printf("╕▒ ▒Ω ╠Γ : %s",assi_biao);
- setcursor(6,22);
- printf("%s",assi_biao1);
- setcursor(7,20);
- printf("╓≈▒Ω╠Γ╫╓╠σ: %c",main_size);
- setcursor(7,50);
- printf("╕▒▒Ω╠Γ╫╓╠σ: %c",assi_size);
- setcursor(8,10); printf("╫≤╔╧╜╟▒Ω╫ó: %s",left_top);
- setcursor(9,10);
- printf("╙╥╔╧╜╟▒Ω╫ó: %s",right_top);
- setcursor(10,10);
- printf("╒²╬─╫╓╠σ : %c",text_size);
- setcursor(11,10);
- printf("╬▓▓┐▒Ω╫ó : %s",tail_boot);
- setcursor(12,10);
- printf("╬▓╫ó╫╓╠σ : %c",tail_size);
- setcursor(13,20);
- printf("╟δ ╩Σ ╚δ ┤≥ ╙í ┐Γ ├√ :");
- for (i=0;i<filectc;i++) {
- setcursor(14+i/2,7+35*(i%2));
- printf("%d--%s",i+1,filename[i]);
- }
- lefts:setcursor(2,22);
- oneline(323,4,4,midd_int);
- left_space=atoi(midd_int);
- setcursor(2,22);
- if (left_space>50) goto lefts;
- printf("%d ",left_space);
- L1: setcursor(2,52);
- oneline(353,4,4,midd_int1);
- page_line=atoi(midd_int1);
- if (page_line>200) {printf("\007");goto L1;}
- setcursor(2,52);
- printf("%d ",page_line);
- setcursor(3,22);
- oneline(423,50,50,main_biao);
- oneline(523,50,50,main_biao1);
- oneline(623,50,50,assi_biao);
- oneline(723,50,50,assi_biao1);
- read_size(7,32,&main_size);
- read_size(7,62,&assi_size);
- oneline(923,40,40,left_top);
- oneline(1023,40,40,right_top);
- read_size(10,22,&text_size);
- oneline(1223,40,40,tail_boot);
- read_size(12,22,&tail_size);
- for (i=0;i<filectc;i++)
- oneline((15+i/2)*100+11+35*(i%2),30,30,filename[i]);
- name: if (filectc==9) goto epar;
- setcursor(14+filectc/2,7+35*(filectc%2));
- printf("%d--",filectc+1);
- oneline((15+filectc/2)*100+11+35*(filectc%2),30,30,filename[filectc]);
- if (filename[filectc][0]!='\0') {
- filectc++; goto name;}
- epar: if (filectc>1) {
- setcursor(19,10);
- printf("╟δ╩Σ╚δ┴¼╜╙▒φ┤∩╩╜: %s",joinname);
- oneline((19+1)*100+30,45,45,joinname);
- if (strcmp(joinname,NULL)==0) {
- setcursor(23,0);
- printf("\007 ╛» ╕µ : ├╗╙╨┴¼╜╙╫╓╢╬,▓╗─▄╜°╨╨┴¼▒φ┤≥╙í ...");
- getchb();
- }
- }
- setcursor(20,25); /*18*/
- printf("\007╚╖ ╢¿ ╒² ╚╖ ╖± (Y/N):");
- judge=getchb(); putchar(judge);
- if ((judge=='n')||(judge=='N')) goto lefts;
- setcursor(21,25);
- printf("╩╟ ╖± ┤µ ┼╠ (Y/N):");
- judge=getchb(); putchar(judge);
- if ((judge=='y')||(judge=='Y')) save_format();
- return(0);
- }
-
-
- read_str(row,col,string,len)int row,col,len;
- char *string;
- {
- char midd[80];
- int ctc,chac;
- for (ctc=0;ctc<len;ctc++) midd[ctc]='\0';
- for (ctc=0;ctc<len;ctc++) {
- if (string[ctc]!='\n') midd[ctc]=string[ctc];
- else break;
- }
- setcursor(row,col);
- ctc=0;
- while (ctc<len-1){
- chac=getchb();
- if (chac==277) {
- if (midd[ctc]!='\0') {ctc++;setcursor(row,col+ctc);}
- }
- if (chac==275) {
- if (ctc!=0) {ctc--; setcursor(row,col+ctc);}
- }
- if (chac==8) {
- if (ctc>0) ctc--;
- setcursor(row,col+ctc);
- printf(" ");
- setcursor(row,col+ctc); }
- if (chac==13) {midd[ctc]=13; break;}
- if (chac>=30&&chac<=256) {
- printf("%c",chac); midd[ctc++]=chac;
- }
- }
- midd[ctc]=13;
- head: if (midd[0]!=13) strcpy(string,midd);
- setcursor(row,col);
- printf("%s\n",string);
- }
-
- read_size(row,col,string)
- int row,col;
- char *string;
- {
- int letter=20;
- while ((letter<'A')||(letter>'H')) {
- setcursor(row,col);
- letter=getchb();
- if (letter==13) {letter=*string; break;}
- }
- *string=letter;
- setcursor(row,col);
- printf("%c ",*string);
- }
-
- fprstr(fp,len,string)
- char *string;
- FILE *fp;
- int len;
- {
- int int_midd;
- int_midd=0;
- while (int_midd<len-1) {
- if ((string[int_midd]!='\0')&&(string[int_midd]!='\n')&&(string[int_midd]!=13))
- fprintf(fp,"%c",string[int_midd]);
- else int_midd=len-1;
- int_midd++;
- }
- }
-
- /*----------------------------generate-------------------------------------*/generate()
- {
- int rowctc,i,j,count1,logic;
- char c1,midd1[3],midd2[3];
- int m,n,H_ctc,zong=0;
- real_width=0;
- count1=0;
- for (m=0;m<80;m++) {
- for (n=0;n<311;n++)
- if (scr[m][n]=='\n') break;
- real_width=(real_width<n)?n:real_width;
- }
- for (m=0;m<filectc;m++) {
- fprintf(stream,"sele %d\n",m+1);
- fprintf(stream,"use ");
- fprstr(stream,30,filename[m]);
- fprintf(stream,"\n");
- }
- fprintf(stream,"set talk off\nnumber=0\n");
- fprintf(stream,"clear\nset talk on\n");
- fprintf(stream,"@10,14 say '╟δ ╩Σ ╚δ ┤≥ ╙í ╖▌ ╩²(0-9999):'\n");
- fprintf(stream,"@row(),col()+1 get number picture '9999'\n");
- fprintf(stream,"read\nclear\n@10,15 say ' ╒² ╘┌ ┤≥ ╙í'\n"); fprintf(stream,"@row()+1,15 say ' ╟δ ╔╘ ║≥...'\n");
- fprintf(stream,"set talk off\n");
- fprintf(stream,"pageline=%d\n",page_line);
- fprintf(stream,"p=1\ncc=0\n");
- fprintf(stream,"do while cc<number\n");
- fprintf(stream,"set device to print\n");
- fprintf(stream,"sele 1\ngo top\n");
- fprintf(stream,"do while .not.eof()\n");
- fprintf(stream,"set print on\n");
- fprintf(stream,"?chr(27)+'I%c'\n",main_size);
- fprintf(stream,"set print off\nset device to print\n");
- fprbaoti(main_biao,main_size,&count1);
- fprbaoti(main_biao1,main_size,&count1);
- fprintf(stream,"set print on\n");
- fprintf(stream,"?chr(27)+'I%c'\n",assi_size);
- fprintf(stream,"set print off\nset devi to print\n");
- fprbaoti(assi_biao,assi_size,&count1);
- fprbaoti(assi_biao1,assi_size,&count1);
- fprintf(stream,"set print on\n");
- fprintf(stream,"?chr(27)+'I%c'\n",text_size);
- fprintf(stream,"set print off\nset devi to prin\n");
- if (strcmp(left_top,NULL)!=0) {
- fprintf(stream,"@prow()+1,%d say '",left_space+1);
- fprstr(stream,40,left_top);
- fprintf(stream,"'\n");
- n++;
- }
- if (strcmp(right_top,NULL)!=0) {
- fprintf(stream,"@prow(),%d say '",real_width-strlen(right_top)+left_space);
- fprstr(stream,40,right_top);
- fprintf(stream,"'\n");
- n++;
- }
- fprintf(stream,"n=%d\nx=prow()\n",count1);
- rowctc=0;
- while ((scr[rowctc][0]!='H')&&(rowctc<80)) {
- if (scr[rowctc][0]=='\n'){rowctc++;continue;}
- for (n=0;n<3;n++){
- fprintf(stream,"@x+%d,%d say '",rowctc+1,left_space+n*200+1);
- for (i=n*200+1;i<(n+1)*200+1;i++){
- if (scr[rowctc][i]!='\n') fprintf(stream,"%c",scr[rowctc][i]);
- else {n=3; break;}
- }
- fprintf(stream,"'\n");
- }
- rowctc++;
- }
- if (rowctc==80) goto labe;
- H_ctc=1;
- fprintf(stream,"sele %d\n",H_ctc);
- fprintf(stream,"do while .not.eof()\n");
- fprintf(stream,"sele %d\n",H_ctc);
- if (strcmp(joinname,NULL)!=0) {
- fprintf(stream,"YsgCons=");
- fprstr(stream,45,joinname);
- fprintf(stream,"\n");
- }
- for (i=1;i<filectc;i++) {
- fprintf(stream,"sele %d\n",i+1);
- fprintf(stream,"go top\nloca for ");
- fprstr(stream,45,joinname);
- fprintf(stream,"=YsgCons\n");
- }
- last_H:fprintf(stream,"x=prow()+1\n");
- i=rowctc;
- while ((scr[i][0]!='T')&&(i<80)){
- j=1;
- logic=(scr[i][0]=='\n');
- if (logic==0){
- last1: if (scr[i][j]!='&'){
- fprintf(stream,"@x+%d,%d say '",i-rowctc,left_space+j);
- while (scr[i][j]!='&'){ c1='0';
- if (scr[i][j]!='\n')
- {
- if (j==201||j==401)
- {
- fprintf(stream,"'\n");
- fprintf(stream,"@x+%d,%d say '",i-rowctc,left_space+j);
- }
- fprintf(stream,"%c",scr[i][j++]);
- }
- else j=width;
- if (j==width){
- fprintf(stream,"'\n");goto next;}
- }
- if (c1=='0') fprintf(stream,"'\n");
- goto last2;}
- else{
- last2: c1='1';
- for (count1=0;count1<count4;count1++)
- if ((scrrow[count1]==i)&&(scrcol[count1]==j)&&!(streq(scrval[count1]," "))){
- if ((scrval[count1][0]>='1')&&(scrval[count1][0]<filectc+49))
- {fprintf(stream,"sele %c\n",scrval[count1][0]);
- m=1;
- }
- else {fprintf(stream,"sele %d\n",H_ctc); m=0;}
- fprintf(stream,"@x+%d,%d say ",i-rowctc,left_space+j);
- while ((m<69)&&(scrval[count1][m]!=13)&&(scrval[count1][m]!=0))
- {fprintf(stream,"%c",scrval[count1][m]);
- m++;}
- fprintf(stream," pict '@BZ'\n");
- }
- while (scr[i][++j]==' ')
- {if (j==width-1) goto next;}
- goto last1;
- }
- }
- next:i++;
- }
- fprintf(stream,"n=n+%d\n",i-rowctc+1);
- fprintf(stream,"sele %d\n",H_ctc);
- fprintf(stream,"skip\n");
- fprintf(stream,"if n>=pageline-1\n");
- fprintf(stream,"@x+%d,%d say '",i-rowctc,left_space+1);
- for (j=1;j<312;j=j+2) {
- if (j==201||j==401)
- {
- fprintf(stream,"'\n");
- fprintf(stream,"@x+%d,%d say '",i-rowctc,left_space+j);
- }
- midd1[0]=scr[i][j];midd1[1]=scr[i][j+1];midd1[2]='\0';
- if (streq(midd1,level[4])) {
- fprintf(stream,"%c%c",level[9][0],level[9][1]); continue;}
- if (streq(midd1,level[5])) {
- fprintf(stream,"%c%c",level[10][0],level[10][1]); continue;}
- if (streq(midd1,level[3])) {
- fprintf(stream,"%c%c",level[1][0],level[1][1]); continue;}
- if (streq(midd1,level[2])) {
- fprintf(stream,"%c%c",level[6][0],level[6][1]); continue;}
- if (midd1[0]!='\n') fprintf(stream,"%c",midd1[0]);
- else {fprintf(stream,"'\n"); break;}
- if (midd1[1]!='\n') fprintf(stream,"%c",midd1[1]);
- else {fprintf(stream,"'\n"); break;}
- }
- m=(real_width-9)/2+left_space;
- fprintf(stream,"@x+%d,%d say '---'+str(p,3)+'---'\n",i-rowctc+2,m);
- fprintf(stream,"eject\n");
- fprintf(stream,"p=p+1\n");
- fprintf(stream,"n=0\nexit\nendif\n");
- fprintf(stream,"if .not.eof()\n");
- fprintf(stream,"@x+%d,%d say '",i-rowctc,left_space+1);
- for (j=1;j<312;j=j+2) {
- if (j==201||j==401)
- {
- fprintf(stream,"'\n");
- fprintf(stream,"@x+%d,%d say '",i-rowctc,left_space+j);
- }
- midd1[0]=scr[i][j];midd1[1]=scr[i][j+1];midd1[2]='\0';
- midd2[0]=scr[rowctc-1][j];midd2[1]=scr[rowctc-1][j+1];midd2[2]='\0';
- if (streq(midd2,level[1])){
- if (streq(midd1,level[6])||streq(midd1,level[2])){
- fprintf(stream,"%c%c",level[6][0],level[6][1]); continue;}
- else {
- fprintf(stream,"%c%c",level[1][0],level[1][1]); continue;}
- }
- if (streq(midd1,level[1])){
- if (streq(midd2,level[3])||streq(midd2,level[2])){
- fprintf(stream,"%c%c",level[3][0],level[3][1]); continue;}
- else {
- fprintf(stream,"%c%c",level[1][0],level[1][1]); continue;}
- }
- if (streq(midd2,level[2]))
- if (!streq(midd1,level[1])&&!streq(midd1,level[3])){
- fprintf(stream,"%c%c",level[2][0],level[2][1]);continue;}
- else {fprintf(stream,"%c%c",level[3][0],level[3][1]); continue;}
- if (streq(midd1,level[2]))
- if (!streq(midd2,level[1])&&!streq(midd2,level[6])){
- fprintf(stream,"%c%c",level[2][0],level[2][1]); continue;}
- else {fprintf(stream,"%c%c",level[6][0],level[6][1]); continue;}
- if (streq(midd1,level[6])&&streq(midd2,level[3])){
- fprintf(stream,"%c%c",level[2][0],level[2][1]); continue;}
- if ((streq(midd1,level[9])||streq(midd1,level[4]))\
- &&(streq(midd2,level[7])||streq(midd2,level[4]))){
- fprintf(stream,"%c%c",level[4][0],level[4][1]); continue;}
- if ((streq(midd1,level[10])||streq(midd1,level[5]))&&(streq(midd2,level[5])||streq(midd2,level[8])||streq(midd2,level[0]))){
- fprintf(stream,"%c%c",level[5][0],level[5][1]); continue;}
- if (scr[i][j]!='\n') fprintf(stream,"%c",scr[i][j]);
- else {fprintf(stream,"'\n"); break;}
- if (scr[i][j+1]!='\n') fprintf(stream,"%c",scr[i][j+1]);
- else {fprintf(stream,"'\n"); break;} }
- fprintf(stream,"endif\n");
- if (H_ctc==1) fprintf(stream,"enddo\n");
- fprintf(stream,"enddo\nx=prow()+1\n");
- rowctc=i;
- while (i<80) {
- j=1;
- logic=(scr[i][0]=='\n');
- if (scr[i][0]=='H')
- {
- H_ctc++;
- for (m=0;m<filectc;m++)
- fprintf(stream,"sele %d\ngo top\n",m+1);
- fprintf(stream,"sele %d\ndo while .not.eof()\nsele %d\n",H_ctc,H_ctc);
- if (strcmp(joinname,NULL)!=0) {
- fprintf(stream,"YsgCons=");
- fprstr(stream,45,joinname);
- fprintf(stream,"\n");
- }
- for (m=0;m<filectc;m++){
- if (H_ctc!=m+1){
- fprintf(stream,"sele %d\n",m+1);
- fprintf(stream,"go top\nloca for ");
- fprstr(stream,45,joinname);
- fprintf(stream,"=YsgCons\n");
- }
- }
- rowctc=i;
- goto last_H;
- }
- if (logic==0){
- last3: if (scr[i][j]!='&'){
- fprintf(stream,"@x+%d,%d say '",i-rowctc,left_space+j);
- while (scr[i][j]!='&'){ c1='0';
- if (scr[i][j]!='\n')
- {
- if (j==201||j==401)
- {
- fprintf(stream,"'\n");
- fprintf(stream,"@x+%d,%d say '",i-rowctc,left_space+j);
- }
- fprintf(stream,"%c",scr[i][j++]);
- }
- else j=width;
- if (j==width){
- fprintf(stream,"'\n");goto next1;}
- }
- if (c1=='0') fprintf(stream,"'\n");
- goto last4;}
- else{
- last4: c1='1';
- for (count1=0;count1<count4;count1++)
- if ((scrrow[count1]==i)&&(scrcol[count1]==j)&&!(streq(scrval[count1]," "))){
- zong++;
- if ((scrval[count1][0]>='1')&&(scrval[count1][0]<filectc+49))
- m=1;
- else m=0;
- while ((m<69)&&(scrval[count1][m]!=13)&&(scrval[count1][m]!=0))
- {fprintf(stream,"%c",scrval[count1][m]);
- m++;}
- fprintf(stream," to value%d\n",zong);
- fprintf(stream,"@x+%d,%d say value%d pict '@BZ'\n",i-rowctc,left_space+j,zong);
- }
- while (scr[i][++j]==' ')
- if (j==width-1) goto next;
- goto last3;
- }
- }
- next1:i++;
- }
- labe:fprintf(stream,"set print on\n");
- fprintf(stream,"?chr(27)+'I%c'\n",tail_size);
- fprintf(stream,"set print off\nset devi to print\n");
- fprintf(stream,"x=prow()\n");
- fprintf(stream,"@x,%d say '",real_width-strlen(tail_boot));
- fprstr(stream,40,tail_boot);
- fprintf(stream,"'\n");
- fprintf(stream,"n=n+4\n");
- /* fprintf(stream,"if (n>pageline).or.(p<>1)\n");*/
- fprintf(stream,"set print on\n?chr(27)+'I%c'\n",text_size);
- fprintf(stream,"set print off\nset devi to print\n");
- m=(real_width-9)/2+left_space;
- fprintf(stream,"@prow()+2,%d say '---'+str(p,3)+'---'\n",m);
- fprintf(stream,"eject\n");
- fprintf(stream,"x=prow()+1\n@x,0 say chr(13)\n");
- fprintf(stream,"set device to screen\ncc=cc+1\nenddo\n");
- }
- fprbaoti(string,size,ctr)
- char *string;
- char size;
- int *ctr;
- {
- int m,n;
- if (strcmp(string,NULL)!=0) {
- m=strlen(string);
- if (size!='A'&&size!='C'&&size!='E'&&size!='G')
- if (text_size=='A'||text_size=='C'&&text_size=='E'&&text_size=='G')
- m=m/2;
- n=(real_width-m)/2;
- fprintf(stream,"@prow()+1,%d say '",n+left_space);
- fprstr(stream,50,string);
- fprintf(stream,"'\n");
- *ctr= *ctr+1;
- }
- }
-
- main_menu(roar)
- int roar;
- {
- char *menu[]={"┤┼┼╠▓┘╫≈",
- "▒α╝¡▒¿▒φ▓╬╩²",
- "▒α╝¡▒¿▒φ╕±╩╜",
- "╔·│╔▒¿▒φ│╠╨≥",
- };
- int i;
- setcursor(0,0);
- color_puts(" ┤┼┼╠▓┘╫≈ ▒α╝¡▒¿▒φ▓╬╩² ▒α╝¡▒¿▒φ╕±╩╜ ╔·│╔▒¿▒φ│╠╨≥",white);
- setcursor(0,5+roar*18);
- color_puts(menu[roar],yellow | blue_back);
- }
-
- save_format()
- {
- int i,j;
- do {
- fp=fopen(filename1,"w");
- if (fp==NULL)
- {setcursor(23,0);printf(" ");
- setcursor(23,0);printf("\007╬┤╢¿╥σ╕±╩╜╬─╝■├√ú¼╟δ╩Σ╚δ╬─╝■├√:");
- oneline(24*100+32,12,12,filename1);}
- }while (fp==NULL);
- fprintf(fp,"%d\n",left_space);
- fprintf(fp,"%d\n",page_line);
- fprstr(fp,50,main_biao);
- fprintf(fp,"\n");
- fprstr(fp,50,main_biao1);
- fprintf(fp,"\n");
- fprstr(fp,50,assi_biao);
- fprintf(fp,"\n");
- fprstr(fp,50,assi_biao1);
- fprintf(fp,"\n");
- fprstr(fp,40,left_top);
- fprintf(fp,"\n");
- fprstr(fp,40,right_top);
- fprintf(fp,"\n");
- fprstr(fp,40,tail_boot);
- fprintf(fp,"\n");
- fprintf(fp,"%c%c%c%c\n",main_size,assi_size,text_size,tail_size);
- fprintf(fp,"%d\n",filectc);
- for (i=0;i<filectc;i++) {
- fprstr(fp,31,filename[i]);
- fprintf(fp,"\n");
- }
- if (filectc!=1) {
- fprstr(fp,46,joinname);
- fprintf(fp,"\n");
- }
- for (i=0;i<80;i++){
- for (j=311;(j>=0)&&(scr[i][j]==' '||scr[i][j]=='\n'||scr[i][j]=='\0');j--)
- scr[i][j]='\n';
- if (scr[i][0]=='\n') continue;
- for (j=0;j<width;j++) {
- if (scr[i][j]!='\n')
- fprintf(fp,"%c",scr[i][j]);
- else break;
- }
- fprintf(fp,"\n");
- }
- fprintf(fp,"P\n"); i=0;
- while (i<count4){
- if (!streq(scrval[i]," "))
- fprintf(fp,"%d %d %s\n",scrrow[i],scrcol[i],scrval[i]);
- i++;
- }
- fclose(fp);
- }
-
- help()
- {
- clear(1,0,24,79,6,0);
- setcursor(4,10);
- printf("⌐│⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐╖");
- setcursor(5,10);
- printf("⌐º ░ε ╓· ╬─ ╝■ ⌐º");
- setcursor(6,10);
- printf("⌐º--------------------------------------------------------⌐º");
- setcursor(7,10);
- printf("⌐º Home ╣Γ▒Ω╥╞╓┴╨╨╩╫ PgUp ╧≥╟░╖¡╥│ ⌐º");
- setcursor(8,10);
- printf("⌐º End ╣Γ▒Ω╥╞╓┴╨╨╬▓ PgDn ╧≥║≤╖¡╥│ ⌐º");
- setcursor(9,10);
- printf("⌐º íⁿ ╧≥╔╧╥╞╢»╣Γ▒Ω í√ ╧≥╫≤╥╞╢»╣Γ▒Ω ⌐º");
- setcursor(10,10);
- printf("⌐º í· ╧≥╙╥╥╞╢»╣Γ▒Ω í² ╧≥╧┬╥╞╢»╣Γ▒Ω ⌐º");
- setcursor(11,10);
- printf("⌐º Ctrl-L ╗¡▒φ╕±╧▀╩▒,╣Γ▒Ω╢¿╬╗ Esc ═╦│÷╡▒╟░▒α╝¡ ⌐º");
- setcursor(12,10);
- printf("⌐º Ctrl-A ╧≥╫≤╥╞╢»╣Γ▒Ω10┴╨ Tab ╧≥╙╥╥╞╢»╣Γ▒Ω10┴╨ ⌐º");
- setcursor(13,10);
- printf("⌐º Ctrl-D ╔╛│²▒φ╕±║ß╧▀╩▒,╣Γ▒Ω╢¿╬╗ ⌐º");
- setcursor(14,10);
- printf("⌐º Ctrl-T ╔╛│²▒φ╕±╩·╧▀╩▒,╣Γ▒Ω╢¿╬╗ ⌐º");
- setcursor(15,10);
- printf("⌐º & ╘┌╡▒╟░╣Γ▒Ω┤ª┤≥╙í▒φ┤∩╩╜╓╡,╙├╗º╜½╩Σ╚δ▒φ┤∩╩╜ ⌐º");
- setcursor(16,10);
- printf("⌐º Ctrl-E ╔╛│²╡▒╟░'&'▒Ω╝╟╦∙╢╘╙ª╡─▒φ┤∩╩╜ ⌐º");
- setcursor(17,10);
- printf("⌐º Backspace ╔╛│²╡▒╟░╣Γ▒Ω╟░├µ╥╗╫╓╖√ ⌐º");
- setcursor(18,10);
- printf("⌐º Ins ▓σ╚δ/╕▓╕╟ Del ╔╛│²╡▒╟░╫╓╖√ ⌐º");
- setcursor(19,10);
- printf("⌐º ╝ⁿ ╚╬ ╥Γ ╝ⁿ ╝╠ ╨° ... ⌐º");
- setcursor(20,10);
- printf("⌐╗⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐┐");
- getchb();
- return(0);
- }
-
- value_exp()
- {
- gframe(10,3,13,77,1,white);
- /* setcursor(10,10);
- printf("⌐│⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐╖");*/
- setcursor(11,5);
- printf(" ╟δ ╩Σ ╚δ ╜½ ┤≥ ╙í ╡─ ▒φ ┤∩ ╩╜ ú║ ");
- /* setcursor(12,10);
- printf("⌐º ⌐º");
- setcursor(13,10);
- printf("⌐╗⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐┐");*/
- }
-
- value_clear()
- {
- int i,j;
- clear_win(10,3,13,78,6,0);
- for (i=10;i<14;i++) {
- setcursor(i,3);
- for (j=3;j<78;j++){
- if (scr[curr+i][curc+j]!='\n')
- printf("%c",scr[curr+i][curc+j]);
- else printf(" ");
- }
- }
- }
-
- pri_form(row1,col1,row2,col2)
- int row1,col1;
- int row2,col2;
- {
- int i;
- setcursor(row1,col1);
- printf("⌐│");
- for (i=0;i<(col2-col1-2)/2;i++)
- printf("⌐Ñ");
- printf("⌐╖");
- for (i=row1+1;i<row2;i++) {
- setcursor(i,col1);
- printf("⌐º");
- setcursor(i,col2);
- printf("⌐º");
- }
- setcursor(row2,col1);
- printf("⌐╗");
- for (i=0;i<(col2-col1-2)/2;i++)
- printf("⌐Ñ");
- printf("⌐┐");
- return(0);
- }
- void read_file()
- {
- int count1;
- /* int count2; */
- int i,j,m,n,hanzi;
- int logic,cont;
- char *helpinf[10];
- char mid[320],c1,c2;
- char charc1[200],charc2[200];
- charc1[0]='\0'; charc2[0]='\0';
- m=strlen(filename1);
- filename1[m]='\0';
- /* strcat(filename1,".s");*/
- curr=-1; curc=0;
- setcursor(0,0);
- for (i=0;i<100;i++)
- {
- strcpy(scrval[i],NULL);
- scrrow[i]=0;
- scrcol[i]=0;
- }
- for (i=0;i<80;i++)
- {
- for (j=0;j<width;j++)
- scr[i][j]='\n';
- }
- strcpy(main_biao,NULL); strcpy(assi_biao,NULL);
- strcpy(main_biao1,NULL); strcpy(assi_biao1,NULL);
- strcpy(left_top,NULL); strcpy(right_top,NULL);
- strcpy(tail_boot,NULL); main_size='A';
- assi_size='A'; tail_size='A'; text_size='A';
- left_space=0; page_line=45; strcpy(midd_int,"0");
- for (i=0;i<9;i++) filename[i][0]='\0';
- strcpy(joinname,NULL); filectc=0;
- strcpy(midd_int1,"45"); strcpy(midd_int2,NULL);
- count1=0; /* count2= -1; */
- count4=0;
- if ((stream=fopen(filename1,"r"))!=NULL){
- fgets(midd_int,4,stream);
- fgets(midd_int1,4,stream);
- left_space=atoi(midd_int);
- page_line=atoi(midd_int1);
- fgets(main_biao,80,stream);
- fgets(main_biao1,80,stream);
- fgets(assi_biao,80,stream);
- fgets(assi_biao1,80,stream);
- fgets(left_top,80,stream); fgets(right_top,80,stream);
- fgets(tail_boot,80,stream);
- main_size=fgetc(stream);
- assi_size=fgetc(stream);
- text_size=fgetc(stream);
- tail_size=fgetc(stream);
- fgetc(stream);
- fgets(midd_int2,4,stream);
- filectc=atoi(midd_int2);
- for (i=0;i<filectc;i++) fgets(filename[i],31,stream);
- if (filectc>1) fgets(joinname,80,stream);
- /* while ((c2=fgetc(stream))!=EOF){
- if (c2=='P') {fgetc(stream); break;}
- if (c2!='\n')
- scr[count1][++count2]=c2;
- if (c2=='\n') {
- count1++;count2= -1;}
- }*/
- while (fgets(mid,320,stream)!=0){
- if (mid[0]=='P') break;
- i=0;
- while (mid[i]!='\0') scr[count1][i++]=mid[i];
- count1++;
- }
- while (fgets(mid,320,stream)!=NULL){
- /* i=0;
- while ((c2=fgetc(stream))!=EOF){
- if (c2!='\n') {mid[i++]=c2;continue;}
- else {mid[i]='\0';mid[i+1]='\n';i=0;}*/
- charc1[0]='\0'; charc2[0]='\0';
- /* printf("%s",mid); getchb();*/
- sscanf(mid,"%d %d %s %s %s\n",\
- &scrrow[count4],&scrcol[count4],scrval[count4],charc1,charc2);
- if (charc1[0]!=0) {
- strcat(scrval[count4]," "); strcat(scrval[count4],charc1);}
- if (charc2[0]!=0) {
- strcat(scrval[count4]," "); strcat(scrval[count4],charc2);}
- count4++;
- if (count4>99) break;
- }
- }
- fclose(stream);
- }
-
-
- disk_oper()
- {
- char oper_type[3][13]={"╕─▒Σ╣ñ╫≈┤┼┼╠",
- "╕─▒Σ╣ñ╫≈─┐┬╝",
- "╡≈╚δ╕±╩╜╬─╝■",
- };
- int i,j,cont;
- char path[20],path1[22];
- gframe(1,5,5,19,1,white);
- for (i=0;i<3;i++)
- {
- setcursor(2+i,7);
- color_puts(oper_type[i],white);
- }
- i=0;
- setcursor(2,7);
- color_puts(oper_type[0],yellow | blue_back);
- cont=getchb();
- while ((cont!=27)&&(cont!=275)&&(cont!=277))
- {
- switch(cont)
- {
- case 272:
- i=(i==0)?2:i-1;
- break;
- case 280:
- i=(i==2)?0:i+1;
- break;
- case 13 : gframe(i+3,7,i+5,29,1,white);
- setcursor(i+3,13);
- color_puts(oper_type[i],white);
- setcursor(i+4,11);
- switch(i)
- {
- case 0:setcursor(i+4,11);
- strcpy(path,NULL);
- oneline((i+5)*100+12,3,3,path);
- if (path[0]!=NULL) system(path);
- break;
- case 1:strcpy(path1,"cd ");
- setcursor(i+4,9);
- strcpy(path,NULL);
- oneline((i+5)*100+10,20,20,path);
- strcat(path1,path);
- system(path1);
- break;
- case 2:
- setcursor(i+4,11);
- oneline((i+5)*100+10,20,20,filename1);
- read_file();
- break;
- }
- clear_win(1,0,20,79,6,0);
- gframe(1,5,5,19,1,white);
- for (j=0;j<3;j++)
- {
- setcursor(2+j,7);
- color_puts(oper_type[j],white);
- }
- }
- clear_win(1,0,20,79,6,0);
- gframe(1,5,5,19,1,white);
- for (j=0;j<3;j++)
- {
- setcursor(2+j,7);
- color_puts(oper_type[j],white);
- }
- setcursor(2+i,7);
- color_puts(oper_type[i],yellow | blue_back);
- cont=getchb();
- }
- clear_win(1,0,20,79,6,0);
- if (cont==275) return(-1); /*Left Arrow*/
- if (cont==277) return(1); /*Right Arrow*/
- return(0);
- }