home *** CD-ROM | disk | FTP | other *** search
- /* SUPERC-SEQ.C
- * PROGRAM TO CONVERT ╙UPER ├
- * FILES TO/FROM ╙┼╤ FILES
- * CONVERTING FILETYPES
- * AND CONTROL CODES
- *
- * ┴DAM ╚ERST
- * ╘╚┼ ╘╥┴╬╙┴├╘╧╥ ═AR 87:╓OL 7,#05
- */
-
- #DEFINE ╨╧╫┼╥ /* UNCOMMENT FOR ├ ╨OWER ├ */
- #IFDEF ╨╧╫┼╥
- #INCLUDE "STDIO.H"
- #DEFINE ├╠╥ '\223'
- #ELSE
- #INCLUDE "H:STDIO.H"
- #ENDIF
-
- CHAR INNAME[25];
- CHAR OUTNAME[25];
-
- #IFDEF ╨╧╫┼╥
- ╞╔╠┼ INCHAN;
- ╞╔╠┼ OUTCHAN;
- #ELSE
- FILE INCHAN;
- FILE OUTCHAN;
- #ENDIF
-
- MAIN()
- █
- INT MENU();
-
- INT CHOICE;
- INT STATUS = 0;
- CHAR INBUFF[255];
- CHAR OUTBUFF[255];
-
- WHILE((CHOICE = MENU()) != '0')
- █
- CHOICE = (CHOICE == '1') ? 1 : 2;
- PUTCHAR(├╠╥);
- #IFDEF ╨╧╫┼╥
- GETCHAR();
- #ENDIF
- NAMEFILE("╙OURCE ",INNAME);
- NAMEFILE("─ESTINATION ",OUTNAME);
- MODNAMES(CHOICE);
- #IFDEF ╨╧╫┼╥
- INCHAN = FOPEN(INNAME,"R");
- OUTCHAN = FOPEN(OUTNAME,"W");
- #ELSE
- INCHAN = OPEN(8,2,INNAME);
- OUTCHAN = OPEN(8,3,OUTNAME);
- #ENDIF
- STATUS = 0;
- WHILE(!STATUS) /* READ A LINE AND CONVERT IT */
- █
- FGETS(INBUFF,254,INCHAN);
- #IFDEF ╨╧╫┼╥
- STATUS = FEOF(INCHAN);
- #ELSE
- STATUS = ┼╧╞;
- #ENDIF
- CONVERT(CHOICE,INBUFF,OUTBUFF);
- FPUTS(OUTBUFF,OUTCHAN);
- PRINTF("\N%S",OUTBUFF);
- ▌
- CLOSE(INCHAN);
- CLOSE(OUTCHAN);
- ▌
- ▌
-
- MODNAMES(CHOICE) /* MODIFY FILENAME FOR */
- INT CHOICE; /* READ/WRITE USR/SEQ */
- █
- SWITCH(CHOICE)
- █
- CASE 1:
- STRCAT(INNAME,",U,R");
- STRCAT(OUTNAME,",S,W");
- BREAK;
- CASE 2:
- STRCAT(INNAME,",S,R");
- STRCAT(OUTNAME,",U,W");
- BREAK;
- ▌
- ▌
-
- NAMEFILE(FILETYPE,NAME) /* INPUT FILENAME */
- CHAR *FILETYPE;
- CHAR *NAME; /* PASS POINTER TO FILENAME */
- █
- PRINTF("\N%SFILE NAME: ",FILETYPE);
- GETS(NAME,16);
- /* ╙UPER ├ GETS() FIX */
- IF(*(NAME + (STRLEN(NAME) - 1)) == '\N')
- *(NAME + (STRLEN(NAME) - 1)) = '\0';
- ▌
-
- MENU()
- █
- INT CHOICE;
- DO
- █
- PRINTF("%C\N",├╠╥);
- PRINTF(" 1. ╙UPER ├ TO ╙EQUENTIAL\N");
- PRINTF(" 2. ╙EQUENTIAL TO ╙UPER ├\N\N") P╔╠|0. ┼╪╔╘ ");
- CHOICE = GETCHAR();
- ▌ WHILE((CHOICE != '0') && (CHOICE != '1') && (CHOICE != '2'));
- RETURN CHOICE;
- ▌
-
- CONVERT(CHOICE,INBUFF,OUTBUFF)
- INT CHOICE;
- CHAR INBUFF[];
- CHAR OUTBUFF[];
- █
- STATIC INT LINENUM = 0;
- INT INNDEX = 0;
- INT OUTNDEX = 0;
-
- IF(LINENUM == 0)
- SWITCH(CHOICE)
- █
- CASE 1:
- INNDEX += 3;
- LINENUM = 1;
- COPYBUFF(INBUFF,OUTBUFF,INNDEX,OUTNDEX);
- BREAK;
- CASE 2:
- OUTBUFF[0] = 133;
- OUTBUFF[1] = 129;
- OUTBUFF[2] = 5;
- OUTNDEX += 3;
- LINENUM = 1;
- COPYBUFF(INBUFF,OUTBUFF,INNDEX,OUTNDEX);
- BREAK;
- ▌
- ELSE
- SWITCH(CHOICE)
- █
- CASE 1:
- INNDEX++;
- COPYBUFF(INBUFF,OUTBUFF,INNDEX,OUTNDEX);
- BREAK;
- CASE 2:
- OUTBUFF[0] = 5;
- OUTNDEX++;
- COPYBUFF(INBUFF,OUTBUFF,INNDEX,OUTNDEX);
- BREAK;
- ▌
- ▌
-
- COPYBUFF(INBUFF,OUTBUFF,INNDEX,OUTNDEX)
- CHAR INBUFF[];
- CHAR OUTBUFF[];
- INT INNDEX;
- INT OUTNDEX;
- █
- DO
- █
- OUTBUFF[OUTNDEX] = INBUFF[INNDEX];
- INNDEX++;
- OUTNDEX++;
- ▌ WHILE(INNDEX <= STRLEN(INBUFF));
- ▌
-