//----------------------------------------------------------------------------- // Copyright (c) David Welch, 1996 //----------------------------------------------------------------------------- #include #include #include #include char xname[80]; char name[80]; char line[256]; char comp[8]; FILE *fp; FILE *fpo; unsigned short ra; unsigned short rb; char cash[512][80]; unsigned short cashcount=0; unsigned short cc; unsigned long cashhit=0; unsigned long cashmiss=0; unsigned long filehit=0; unsigned long counter=0; //----------------------------------------------------------------------------- void main ( int argc, char *argv[] ) { if(argc==1) { printf("What?\n"); exit(1); } for(cc=0;cc<512;cc++) cash[cc][0]=0; fp=fopen(argv[1],"rt"); if(fp==NULL) { printf("Error opening file [%s]\n",argv[1]); exit(1); } comp[0]='.'; fread(&comp[1],1,4,fp); comp[5]=0; printf("%s\n",comp); strcpy(name,&comp[1]); strcat(name,"zon"); fpo=fopen(name,"wt+"); if(fpo==NULL) { printf("Error creating file [%s]\n",name); exit(1); } while(fgets(line,sizeof(line),fp)) { ra=strlen(line); if(ra<6) continue; if(line[0]==' ') continue; if(line[ra-1]==0x0A) line[ra-1]=0; for(ra=0;line[ra]!=' ';ra++) name[ra]=line[ra]; name[ra]=0; if(ra<6) continue; for(;line[ra]==' ';ra++); for(;line[ra]!=' ';ra++); for(;line[ra]==' ';ra++); if((line[ra]!='A')&&(line[ra]!='N')) continue; ra=strlen(name); if(strcmp(&name[ra-5],comp)!=0) continue; ra--; name[ra]=0; ra-=5; while(1) { if(name[ra]=='.') { ra++; break; } if(ra==0) break; ra--; } strcpy(xname,&name[ra]); strcpy(name,"WWW."); strcat(name,xname); fseek(fpo,0,SEEK_SET); ra=0; for(cc=0;cc<512;cc++) if(strcmp(&cash[cc],name)==0) { ra=1; cashhit++; break; } if(ra) continue; cashmiss++; strcpy(&cash[cashcount],name); cashcount=(cashcount+1)&511; ra=0; while(fgets(line,sizeof(line),fpo)) { rb=strlen(line); if(rb<9) continue; if(line[rb-1]==0x0A) line[rb-1]=0; if(strcmp(line,name)==0) { ra=1; filehit++; break; } } if(ra) continue; counter++; fprintf(fpo,"%s\n",name); putchar('.'); fflush(stdout); if(kbhit()) if(getch()==0x1B) break; } printf("\n"); printf("%lu cashhit\n",cashhit); printf("%lu cashmiss\n",cashmiss); printf("%lu filehit\n",filehit); printf("%lu counter\n",counter); } //----------------------------------------------------------------------------- // Copyright (c) David Welch, 1996 //-----------------------------------------------------------------------------