home *** CD-ROM | disk | FTP | other *** search
- /************************* Main *********************/
- /* */
- /* Joke: a random Joke selector */
- /* */
- /****************************************************/
- #include <stdio.h>
- extern int rand(),srand();
- extern long time();
- FILE *jokefile;
- char buf[80],name[80];
- short num,line;
- #define ABS(x) ((x)>0?(x):(-(x)))
-
- main(argc,argv)
- int argc;
- char *argv[];
- {
- char *src;
-
- src = argv[1];
- if(src[0]=='?'||(argc!=2&&argc!=3))
- {
- help:
- printf("\f"); /* clear screen (clear) */
- center(1," ");
- center(2," J O K E O F T H E D A Y ");
- center(3," ");
- center(5,"Written by");
- center(7,"Charles Jeffery Carter");
- center(8,"4601 Wilshire Cove ");
- center(9,"Huntsville, Ala. 35816");
- center(11,"This software may be freely distributed");
- center(12,"If you like this program, Let me know! ");
- center(14,"Joke is used to help select a random joke for the day!");
- center(16,"Usage--> Joke Type [Number]");
- center(18,"Types avaliable are in current directory as Type.Joke ");
- center(19,"File format is number of records followed by records. ");
- center(20,"Each record ends with a '/' in the first column. ;8^) ");
- center(22," Press Return to Continue ");
- getchar();
- printf("\f"); /* reset screen (clear) */
- exit(0);
- }
- strcpy(name,src);
- strcat(name,".Joke");
- jokefile=fopen(name,"r");
- if (jokefile==NULL)
- {
- printf("File %s not found! Hit Return\n",name);
- getchar();
- goto help;
- }
- fgets(buf,80,jokefile);
- num=atoi(buf);
- if(num==0)
- {
- printf("Invalid number [%s] in file %s\n",buf,name);
- fclose(jokefile);
- goto help;
- }
- srand((short)time(0L));
- if(argc==3) line=atoi(argv[2])-1;
- else line=rand();
- line=ABS(line);
- line%=num;
- printf("Number %d in %s\n",line+1,name);
- while(line && fgets(buf,80,jokefile)) if (buf[0]=='/') --line;
- while(fgets(buf,80,jokefile) && buf[0]!='/') printf(buf);
- fclose(jokefile);
- }
-
-
- /************************* center ***********************/
- center(row,string)
- int row;
- char *string;
- /* printf the string centered on given row */
- {
- int col;
- col = (76-strlen(string))/2;
- printf("%d;%dH%s",row,col,string);
- }
-