home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 080.lha / convert.c < prev    next >
C/C++ Source or Header  |  1986-11-20  |  3KB  |  132 lines

  1. /***************************************************************************
  2.     convert.c - converts the ASCII dealer database from
  3.             dbase III from AmigaWorld to mff format.
  4.             This program was just a quick hack to read
  5.             an ASCII file and output the mff's record format
  6.             into a file which was then appended by hand to
  7.             the actual mff dealer database.
  8.             This should give you an idea of how to output
  9.             records in mff format.  You can certainly get
  10.             fancier by appending directly to the mff file, etc.
  11.             You might want to use this or similar code to
  12.             import more complex file formats than what the
  13.             MFFImport utility can handle.
  14.  
  15.     Author - Gary Samad
  16.  
  17.     Revisions:
  18.       26-May-87    Original version.
  19. ***************************************************************************/
  20.  
  21. #include <stdio.h>
  22.  
  23. #define EOS        '\0'
  24.  
  25. #define INFILE        "ram:awdealer.txt"
  26. #define OUTFILE        "ram:dealers.mff.data"
  27. #define MAXLINE        256
  28. #define MAXFILENAME    30
  29.  
  30. main(argc,argv)
  31. int argc;
  32. char *argv[];
  33. {
  34.     char oneline[MAXLINE];
  35.     char company[MAXLINE];
  36.     char street[MAXLINE];
  37.     char city[MAXLINE];
  38.     char state[MAXLINE];
  39.     char zip[MAXLINE];
  40.     char phone[MAXLINE];
  41.  
  42.     FILE *fp;
  43.     FILE *outfp;
  44.     char *curfield;
  45.  
  46.     if (!(fp=fopen(INFILE,"r")))
  47.     {
  48.       printf("cannot open '%s'\n",INFILE);
  49.       exit(1);
  50.     }
  51.  
  52.     if (!(outfp=fopen(OUTFILE,"w")))
  53.     {
  54.       printf("cannot open '%s'\n",OUTFILE);
  55.       exit(1);
  56.     }
  57.  
  58.     while (fgets(oneline,MAXLINE,fp))
  59.     {
  60.       if (strlen(oneline) != 149)
  61.         printf("error, len=%d line='%s'\n",strlen(oneline),oneline);
  62.       else
  63.       {
  64.         curfield = &oneline[134];
  65.         remove_junk(&curfield);
  66.         strcpy(phone,curfield);
  67.         *curfield = EOS;
  68.         curfield = &oneline[124];
  69.         remove_junk(&curfield);
  70.         strcpy(zip,curfield);
  71.         *curfield = EOS;
  72.         curfield = &oneline[116];
  73.         remove_junk(&curfield);
  74.         strcpy(state,curfield);
  75.         *curfield = EOS;
  76.         curfield = &oneline[96];
  77.         remove_junk(&curfield);
  78.         strcpy(city,curfield);
  79.         *curfield = EOS;
  80.         curfield = &oneline[64];
  81.         remove_junk(&curfield);
  82.         strcpy(street,curfield);
  83.         *curfield = EOS;
  84.         curfield = &oneline[32];
  85.         remove_junk(&curfield);
  86.         strcpy(company,curfield);
  87.  
  88.         fprintf(outfp," RECORD\n%d\n%s\n%d\n%s\n%d\n%s\n%d\n%s\n%d\n%s\n%d\n%s\n",
  89.         strlen(company),company,
  90.         strlen(street),street,
  91.         strlen(city),city,
  92.         strlen(state),state,
  93.         strlen(zip),zip,
  94.         strlen(phone),phone);
  95.       }
  96.     }
  97.  
  98.     fclose(fp);
  99.     fclose(outfp);
  100. }
  101.  
  102. remove_junk(strptr)
  103. register char **strptr;
  104. {
  105.     remove_trailing_junk(*strptr);
  106.  
  107.     if (**strptr != EOS);
  108.       remove_leading_junk(strptr);
  109. }
  110.  
  111. remove_leading_junk(strptr)
  112. char **strptr;
  113. {
  114.     while ((**strptr == ' ') && (**strptr != EOS))
  115.       (*strptr)++;
  116. }
  117.  
  118. remove_trailing_junk(str)
  119. char *str;
  120. {
  121.     char *strend;
  122.  
  123.     strend = str + strlen(str) - 1;
  124.  
  125.     while ((strend >= str) &&
  126.            ((*strend == ' ') || (*strend == '\n') ||
  127.         (*strend == '\r') || (*strend == ',')))
  128.       strend--;
  129.  
  130.     *(strend+1) = EOS;
  131. }
  132.