home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #26 / NN_1992_26.iso / spool / comp / sys / amiga / datacomm / 7559 < prev    next >
Encoding:
Text File  |  1992-11-09  |  3.2 KB  |  121 lines

  1. Path: sparky!uunet!usc!zaphod.mps.ohio-state.edu!pacific.mps.ohio-state.edu!cis.ohio-state.edu!magnus.acs.ohio-state.edu!usenet.ins.cwru.edu!agate!stanford.edu!rutgers!cbmvax!cbmehq!cbmger!imart.franken.de!hcast.franken.de!jow
  2. From: jow@hcast.franken.de (Juergen Weinelt)
  3. Newsgroups: comp.sys.amiga.datacomm
  4. Subject: Re: Splitting .lha files on UNIX
  5. Message-ID: <jow.02rl@hcast.franken.de>
  6. Date: 7 Nov 92 00:50:23 GMT
  7. References: <Bwn9s8.H58@news.cso.uiuc.edu>
  8. Organization: None at all
  9. Lines: 110
  10.  
  11. In article <Bwn9s8.H58@news.cso.uiuc.edu> djs55750@ih-nxt01.cso.uiuc.edu (David John Schulz) writes:
  12. >For instance, I have a 2 meg lharc file I'd love to break down to several
  13. >~700k files so I could put then on an MS-DOS disk.
  14.  
  15. Well, since I've seen no replies so far, I'm going to post my own
  16. solution to this problem. It should be quite generic. Sorry for
  17. posting source code to a discussion group, but it's short and
  18. it may be useful for many readers.
  19.  
  20. BTW, the language this was written in is actually C. You might
  21. notice though that I'm usually doing M2 programming :-) So there
  22. could be several 1000's of bugs in there ( I'm not that familiar
  23. with C :)
  24.  
  25. The usual disclaimer applies: this software works fine for me.
  26. Your mileage may vary. Use at your own risk.
  27.  
  28.  
  29. --snip--snip--snip--snip--snip--snip--snip--snip--snip--snip--snip--
  30. #include <stdio.h>
  31. #include <ctype.h>
  32. #include <strings.h>
  33.  
  34.  
  35.  
  36. #define TRUE 1
  37. #define FALSE 0
  38. #define NOT(a) (!(a))
  39. #define AND &&
  40. #define OR ||
  41. #define REPEAT do {
  42. #define UNTIL(a) } while(!(a))
  43. #define WHILE while (
  44. #define FOR for(
  45. #define TO ;
  46. #define BY ;
  47. #define DO ) {
  48. #define IF if(
  49. #define THEN ) {
  50. #define ELSE } else {
  51. #define ELSIF } else if(
  52. #define END }
  53. #define BEGIN {
  54. #define INC(a) a++
  55. #define DEC(a) a--
  56.  
  57.  
  58.  
  59. int main(argc,argv)
  60.   int argc;
  61.   char *argv[];
  62.   BEGIN
  63.     FILE *outfile;
  64.     int c;
  65.     int chars;
  66.     int blocksize;
  67.     char ext[50];
  68.     char nam[50];
  69.  
  70.     strcpy(ext,".000");
  71.     IF (argc<2) THEN
  72.       printf("%s outname [blocksize]\n",argv[0]);
  73.       printf("  copy from stdin to a sequence of files named\n");
  74.       printf("  'outname.xxx' (000<=xxx<=999) with size 'blocksize'\n");
  75.       printf("  (or smaller). default blocksize is 728,000 bytes.\n");
  76.       exit(10);
  77.     END;
  78.     IF (argc>3) THEN
  79.       printf("%s outname [blocksize]\n",argv[0]);
  80.       printf("ERROR: too many parameters\n");
  81.       exit(10);
  82.     END;
  83.     IF (argc==3) THEN
  84.       blocksize=atoi(argv[2]);
  85.     ELSE
  86.       blocksize=728000;
  87.     END;
  88.     REPEAT
  89.       chars=0;
  90.       strcpy(nam,argv[1]);
  91.       strcat(nam,ext);
  92.       outfile=fopen(nam,"w");
  93.       REPEAT
  94.         c=getchar();
  95.         IF (c!=EOF) THEN
  96.           putc(c,outfile);
  97.         END;
  98.         INC(chars);
  99.       UNTIL ((chars==blocksize) OR (c==EOF));
  100.       INC(ext[3]);
  101.       IF (ext[3]>'9') THEN
  102.         ext[3]='0';
  103.         INC(ext[2]);
  104.         IF (ext[2]>'9') THEN
  105.           ext[2]='0';
  106.           INC(ext[1]);
  107.         END;
  108.       END;
  109.       fclose(outfile);
  110.     UNTIL (c==EOF);
  111.     exit(0);
  112.   END
  113. --snip--snip--snip--snip--snip--snip--snip--snip--snip--snip--snip--
  114.  
  115.  
  116. -- Juergen Weinelt, Germany
  117.  
  118.   o  _         1) jow@sun.rz.uni-wuerzburg.de (preferred)
  119.   | (_) \/\/   2) jow@hcast.adsp.sub.org
  120.   '            3) jow@hcast.franken.de
  121.