armhold@topaz.rutgers.edu (George Armhold) (01/01/89)
How does one go about piecing together the long files from comp.binaries.amiga? (I'm assuming that the reason there are multiple msgs with the same program name is because they are too long for a standard msg- is this correct?) Usually I use the 's' commmand to put the file in my directory. -GEA
mikes@lakesys.UUCP (Mike Shawaluk) (01/01/89)
In article <Dec.31.17.18.19.1988.4549@topaz.rutgers.edu> armhold@topaz.rutgers.edu (George Armhold) writes: > >How does one go about piecing together the long files from >comp.binaries.amiga? (I'm assuming that the reason there are multiple >msgs with the same program name is because they are too long for a >standard msg- is this correct?) Usually I use the 's' commmand to put >the file in my directory. >-GEA I used to use the 's' or 'w' commands for multiple-piece articles also, but I've found a few slightly more efficient tricks, especially for the way that Mr. Page has been posting Amiga stuff, which is as uuencoded .ZOO files (or .zuu files, as they're usually named). If the posting is all in one files, I usually type "| unshar", which deposits the .zuu file directly in my News directory (I use rn). It's usually a good idea to "read" the first page or so of the posting, to determine whether the shell archive contains one or more files before doing this, to prevent things from getting jumbled up, in the event that there are other things in my News directory that I haven't gotten around to moving elsewhere or downloading yet. Anyways, your original question was about piecing together multiple pieces, like moebius or rgb, I assume. Well, what I was able to do for those was this (note, these are all "rn" commands; you may not be able to do this if you use another news reader) First, I do an "=" command, to see how many articles there are, and the article numbers of them. Then I type "first#-last#:|unshar", where first# is the article number of the first one, last# is the last number. This causes each of the postings to be unshar'ed, resulting in a bunch of .zu? files in my directory (.zu1, .zu2, etc.) Then, assuming I have all of the pieces, I can type "cat rgb1.zu? | uudecode", which will take the pieces rgb1.zu1 through rgb1.zu9 (or however high up it got), concatenate them together, and uudecode the .zuu file into a .zoo file. If there are more than 9 pieces, as there were for the recent rgb demo, you might have to modify your cat command slightly, such as "cat rgb1.zu? rgb1.zu1? | uudecode". Please note that the above isn't intended to be a tutorial on UN*X, piping, rn, or anything, just a list of my shortcuts, etc. I try to use these techniques, not only because it saves time & typing, but because it cuts down the number of intermediate files, which makes the system administrator happy, as his disks tend to runneth over slightly less often :-) Does anyone else out there have any suggestions or alternatives to add? -- - Mike Shawaluk ...!uunet!marque!lakesys!mikes
hrlaser@pnet02.cts.com (Harv Laser) (01/02/89)
I downloaded the 9-part "MoebiuS" animation and while I didn't turn it into a .Zoo file on my host, I did it on my Amiga instead. I ended up with a .Zoo file that correctly unZOOed giving me the animation, and a bunch of ancillary pieces. In fact here's exactly what I got after unZOOing it to a blank floppy: Directory "df1:" on Sunday 01-Jan-89 more 11008 ----rwed Yesterday 21:47:46 MoebiuS 462394 ----rwed Yesterday 21:47:26 .info 59 ----rwed Yesterday 22:06:41 MoebiuS.data 14859 ----rwed Yesterday 21:47:35 PlayPFX.info 1798 ----rwed Yesterday 21:47:53 PlayPFX 28044 ----rwed Yesterday 21:47:52 MoebiuS-IT.doc 2354 ----rwed Yesterday 21:47:29 Moebius.doc 626 ----rwed Yesterday 21:47:36 MoebiuS-IT.doc.info 1507 ----rwed Yesterday 21:47:32 Moebius.doc.info 1507 ----rwed Yesterday 21:47:39 MoebiuS.info 6891 ----rwed Yesterday 21:47:43 Okay, all well and good. ZOO didn't barf on it so I figure the files all came thru intact. So I read the .doc file (the English one :-) and I slide my CLI out of the way and open the disk icon and clic click on the big MoebiuS icon. It invokes PlayPFX which opens a little window at the bottom of the screen, click click gronk gronk, I see the memory on my Workbench menu strip going down down down... the screen flashes once, all the memory comes back and that's it. No animation. Hmmm... read the docs again "requires 1.5M" (I have 2.5M)... so I get rid of some stuff hogging up my ramdisk and try it again. Same thing. Reboot, same thing. I even went so far as to install the disk with the animation on it, put a startup sequence in it that just says "playpfx moebius" and boot from THAT and this time I just get some meaningless (to me) error code after 20 seconds of listening my drive load something. Oh yeah.. I DID rename the disk to "ArteMatica #2" but that still didn't do any good. When I tried "playpfx Moebius.data" It loaded a pretty title screen, displayed it for about 3 seconds, then returned me to the CLI. So I give up... what's the trick to getting MoebiuS to work? Can someone compare those filesizes above with those from a known working copy? And if, as the docs say, the animation was created with Sculpt-Animate, why did the artist put it in this bizarre format that requires "PlayPFX" to show it instead of just defaulting to E.Graham's "Movie" program!?!? Harv Laser, Sysop, The People/Link AmigaZone. Plink: CBM*HARV UUCP: {ames!elroy, <backbone>}!gryphon!pnet02!hrlaser INET: hrlaser@pnet02.cts.com <---open Push down while turning close tightly--->
grwalter@watcgl.waterloo.edu (Fred Walter) (01/03/89)
In article <263@lakesys.UUCP> mikes@lakesys.UUCP (Mike Shawaluk) writes: >Then, assuming I have all of the pieces, I >can type "cat rgb1.zu? | uudecode", which will take the pieces rgb1.zu1 >through rgb1.zu9 (or however high up it got), concatenate them together, and >uudecode the .zuu file into a .zoo file. If there are more than 9 pieces, as >there were for the recent rgb demo, you might have to modify your cat command >slightly, such as "cat rgb1.zu? rgb1.zu1? | uudecode". In the program I just posted a couple of days ago that tries to automate putting together binaries/source postings I didn't take the above into account. Here is an updated version. fred ---cut-here--------------------------hey-that-tickles!!!!---------- /* * newsbreak.c (version 1.02) * * by G. R. Walter (Fred) December 30, 1988 * * Description: * Takes a series of files which are shar files (strips any * garbage at the start of the shar file) that have been posted to * comp.{sources|binaries}.amiga and feeds them through sh. * After they have been fed through sh the original files are * deleted. Then any uuencoded files are uudecoded, after which * the uuencoded files are also deleted. * * NOTES: * 1) This program assumes that all necessary shar files are in the * current directory. It attempts to not delete stuff if it can't * handle it (like when not all the parts of a multi-part uuencoded * file are available). * 2) When there are multiple parts to a uuencoded file, a maximum * of 29 parts are currently handled. */ #include <stdio.h> #include <ctype.h> #include <sys/types.h> #include <sys/dir.h> main() { DIR *dirp; struct direct *dp; void unshar(); void uudecode(); /* unshar everything */ dirp = opendir("."); for (dp = readdir(dirp); dp != NULL; dp = readdir(dirp)) unshar(dp->d_name); closedir(dirp); /* uudecode everything */ dirp = opendir("."); for (dp = readdir(dirp); dp != NULL; dp = readdir(dirp)) uudecode(dp->d_name); closedir(dirp); exit(0); } void unshar(name) char *name; { FILE *fin; FILE *fout; char buf[200]; fin = fopen(name, "r"); if (fin == NULL) /* file doesn't exist !? */ return; for (;;) { if (fgets(buf, 200, fin) == NULL) { /* not a shar file !? */ fclose(fin); return; } if (strncmp(buf, "#!/bin/sh", 9) == 0) break; } fout = fopen(".unshar.temp.file", "w"); while (fgets(buf, 200, fin) != NULL) fprintf(fout, "%s", buf); fclose(fout); fclose(fin); if (system("sh .unshar.temp.file >> .unshar.output") == 0) unlink(name); unlink(".unshar.temp.file"); } void uudecode(name) char *name; { FILE *file; char buf[200]; char name_buf[200]; char *ptr; /* check if the file still exists */ file = fopen(name, "r"); if (file == NULL) return; fclose(file); /* if the file ends in ".uu" or ".zuu" just uudecode it */ ptr = name + strlen(name) - 1; if ((*ptr == 'u') && (*(ptr - 1) == 'u')) { ptr -= 2; if ((*ptr == '.') || ((*ptr == 'z') && (*(ptr - 1) == '.'))) { sprintf(buf, "uudecode %s", name); if (system(buf) == 0) unlink(name); return; } } /* handle ".zu#" where # is a number */ while (isdigit(*ptr)) ptr--; if ((*ptr == 'u') && ((*(ptr - 1) == 'z') && (*(ptr - 2) == '.'))) { *(ptr + 1) = NULL; /* check out how many parts there are */ sprintf(name_buf, "%s10", name); file = fopen(name_buf, "r"); if (file == NULL) { sprintf(buf, "cat %s? | uudecode", name); } else { fclose(file); sprintf(name_buf, "%s20", name); file = fopen(name_buf, "r"); if (file == NULL) { sprintf(buf, "cat %s? %s1? | uudecode", name, name); } else { fclose(file); sprintf(name_buf, "%s30", name); file = fopen(name_buf, "r"); if (file == NULL) { sprintf(buf, "cat %s? %s1? %s2? | uudecode", name, name, name); } else { fclose(file); } } } if (system(buf) == 0) { sprintf(buf, "rm %s*", name); system(buf); } } }