#include <stdio.h>
#define n 9999
FILE *fp,*fp4;
char a[160];
main(ac,av)
int ac; char *av[];
{
  int i,j,k,m;
  float x,y,r,r1,r2,r3,r4,r5,r6,z;
  char f1[60],f3[60],f4[60];
  float xx[n],yy[n],vv[n],vs[n],ss[n],zz[n];
  int   cn[n];
    
  if(ac<2){ printf("extrcat uedo\n\n"); exit(0); }
  strcpy(f1,av[1]); k=nindex(f1,"."); if(k>0)f1[k]=0;
  strcpy(f3,f1); strcpy(f4,f1); strcat(f4,".ext");
// *.als
  strcat(f3,".als");
  fp=fopen(f3,"r"); if(fp==0){ printf("%s not found!\n",f3); exit(0); }
  for(i=0;i<3;i++)fgets(a,160,fp);
  k=0;
l10:
  fgets(a,160,fp); if(feof(fp))goto l20;
  sscanf(a,"%d %f %f %f %f %f %f %f %f",&j,&y,&x,&r3,&r4,&r5,&r,&r,&r6);
  if(r6<-9.99)r6=-9.99;  if(r6>9.99)r6=9.99;
  cn[k]=j; yy[k]=y; xx[k]=x; vv[k]=r3; vs[k]=r4; ss[k]=r5; zz[k]=r6;
  k++;
  goto l10; 
l20:
  fclose(fp);
  fp4=fopen("extrcat.tmp","w");
  fp=fopen("test.cat","r");
l30:
  fgets(a,160,fp); if(feof(fp))goto l40;
  if(a[0]=='#')goto l30;
  sscanf(a,"%d %f %f %f %f %f %f %f %f %f %f %f %f %d %f",
  &j,&r,&r,&r,&r,&r1,&r2,&y,&x,&r3,&r4,&r5,&r6,&m,&z);
  for(i=0;i<k;i++) if(cn[i]==j)goto l35;
  goto l30;
l35:
  if(r4>999.99)r4=999.99; 
  fprintf(fp4,"%8.2f%8.2f%8.2f%8.2f%8.2f%7.3f%6.3f%6.2f%8.2f%7.3f%6.3f%5.2f%7.2f%5.2f%6.1f%3d%5d\n",       
  x,y,yy[i],xx[i],ss[i],vv[i],vs[i],zz[i],r3,r1,r2,z,r4,r6,r5,m,j);
  goto l30;
l40:
  fclose(fp4);
  printf("%s %d\n",f4,k);
  strcpy(a,"sort -g extrcat.tmp > "); strcat(a,f4);
  system(a);
}
