pkopp@potpourri.UUCP (Paul Kopp) (08/06/87)
Just great. The uuencoded "shrink" program I posted doesn't work! I'm destined to make it up to everyone. (I hate uuencode anyway.) What I've done here is written a "C" program that encodes/decodes binary files (the program's mine but I got the algorithm from _Unix_World_). Just split this posting up into seperate files, compile the encode/decode program, and run it on the coded "shrink" file below. I made sure it works this time, it does! Have Fun! BTW...I put a ----CUT HERE--- at the end of this posting so you'll know that you got the complete file. Gould Inc., Computer Systems Division, in Sunny South Florida ** The opinions (if any) expressed are my own. ** ...seismo!gould!pkopp OR ...akgua!ucf-cs!novavax!gould!pkopp And remember: A path is a thing that you have running between two shrubberies of slightly different heights. The encode/decode program: ---------------------------- CUT HERE --------------------------------- #include<stdio.h> main(argc,argv) int argc; char *argv[]; { FILE *fopen(),*in,*out; int c; int i=0; int choice; if(argc < 4) { printf("\nusage: %s [-e -d] in_file out_file\n",argv[0]); printf("where: -e = encode file\n"); printf(" -d = decode file\n"); exit(); } if((in=fopen(argv[2],"r")) == NULL) { printf("Error opening input file\n"); exit(); } if((out=fopen(argv[3],"w")) == NULL) { printf("Error opening output file\n"); exit(); } if(!strcmp(argv[1],"-e")) /* Encode File */ { while ((c = fgetc(in)) != EOF) { fprintf(out,"%02x", c); if (++i == 30) { fprintf(out," \n"); i = 0; } } fprintf(out," \n"); exit(); } else if(!strcmp(argv[1],"-d")) /* Decode File */ { while(fscanf(in,"%2x", &c) != EOF) fputc(c,out); exit(); } fclose(in); fclose(out); } ---------------------------- CUT HERE --------------------------------- And now, the coded version of "shrink": ---------------------------- CUT HERE --------------------------------- ffffb400b600446e3affffc600cc0044313a2a2e2a9bffffaf05fd06203b b490034c4bb4e687d002e688a5878d0a03a5888d0b03a5938d0403a5948d 0503a9408d0303a9528d0203a9318d0003a59d8d0103a9008d07038d0903 a9058d0603a9808d08032059e4ad030310034cc5b7607d9bb1baa0d3c8d2 c9cecba09b57686963682064726976652068617320746865206469736b20 746f2062659b534852554e4b3f20007d496e73657274206469736b287329 9b00a903a00620adb420fbb5206cba859d2087b9a938a00620adb420d9b5 18a59d6930c5b5f00485a2d00ea5a3f00a2045bba5ac85a5200dbba90085 8c859c85878588858920af05ade7028580ade8028581a000b912bcf00591 80c8d0f618a580690c8595a581690085964cbf06ade8028596ade7028595 18a59569038595a59669008596a5958598a5968599a900858d858ea59585 9aa596859ba900858f85908591a489b1938597e689100720af05a9008589 4c99b2ffff99b21ebca590d020a58fc905b01aa597a000919538a595e989 a596e9b290034c67b3e695d002e696a489b193c597d009e68fd002e6904c ea06a590d025a58fd009e68dd002e68e4cda06a58fc905b012e68f18a58f 658d858da58e6900858e4cda0638a598e9038580a599e9008581a58ed004 a58df018a000a9ff9180c8a58e9180c8a58d9180a59a8580a59b8581e68f d004e690d000a000a5909180c8a58f9180a597c8918018a58069038595a5 8169008596a58cf001604cbf06496e73657274206469736b20746f207772 6974652000e695d002e696200ab4a951a0b320adb420e0b9a5a2d00ba5a3 f007a5a5f0032005bb20d9b5a210a9039d4203a9b49d4403a9009d4503a5 9cf002d00fa9089d4a03859ca9009d4b032044baa210a90b9d4203ade702 9d4403ade8029d450338a595ede7029d4803a596ede8029d49032044baa5 8cf00160a9f2a0b320adb4a5a3f003200dbb20d9b54cb5069b52652d696e 7365727420736f75726365206469736b9b0018e68fd002e690a58f658d85 8da590658e858e38a598e9038580a599e9008581a000a9ff9180c8a58e91 80c8a58d918060a588c902d008a587c9d0d002386018606868a9ff858ca5 8ed006a58dd002f016a590d012a58fc905b00c200ab42070b320fbb54caa b820f7b24c68b4849f86a020aad920e6d8a000b1f330062097b4c8d0f629 7f2097b4a49fa6a06084a120ffffa4a16085d4859ea90085d52077b4a59e 6085028403a554c912900320ccb4a000b102f0062097b4c8d0f660a99b4c 97b4a000b193998004c810f8a97d2097b4a000b980049193c810f860e687 d002e688a5a6f00aa000b193d004c810f960a5878d0a03a5888d0b0318a5 938d0403a5948d0503a9808d0303a9504cd805a5a2d00ba5a3f007a5a5f0 032005bba9f6a0b720adb420e0b920d9b5a59cd021a21020fbb5a9039d42 03a9b49d4403a9009d4503a9049d4a03a9009d4b032044baa210a9079d42 03ade7029d44038595ade80285969d450338a989ede7029d4803a9b2ede8 029d49032044babd4303858618bd48036de7028583bd49036de8028584a5 9cd00d18a595690c8595a5966900859638e69ca583e9018583a584e90085 84a5a2d007a5a3f003200dbba9dda0b74cadb4d0d2c5d3d3a0d3d4c1d2d4 00a5a2d01da9cda0b520adb4ad1fd02901f0f9a9008d1fd0ad1fd02901d0 f920c7b460a90ca2109d42034c44ba7da0b2bad5ced3c8d2c9cecba09b9b 44657374696e6174696f6e206973206472697665233f00536b697020626c 616e6b2073656374732028592f4e293f00a90085878588859c8586858285 a6a905a0b620adb4206cba859d2087b9a92ba0b620adb42036b9c959d002 85a6a97d2097b418a59d6930c5b5f00285a2a5a3f0072045bba5ac85a520 19b520d9b5a000b195c9ffd03020f8b6b195858a20f8b6b1958589d002c6 8a20f8b6a000b1952018b720f8b6c689d0f2c68aa58ac9fff002d0e84c91 b6a000b195858a20f8b6b1958589d002c68a20f8b6b1958585a5852018b7 c689d0f7c68aa58ac9ffd0ef20f8b64c91b6a584c596d01138a583e59585 02a584e5960502f01cb000e695d002e696a00060a4829193e68230016020 e6b4a900858260a58630462019b520d9b5a000607d444f4e45211e1e1e1e 1effffffffffffffffffffff9b004e4f54453a434f4d504c455445204449 534b204e4f542046494c4c45443a4552524f529b0020fbb5a936a0b720ad b4a582d00f203bb4900aa90085a220d9b54caab8a94ea0b720adb4a58220 9fb4a58785d4a58885d52077b44c86b77dfda0cff6e5f2f2f5eea0e5f2f2 eff2a1a0c1e2eff2f4e5e49b008592a90085a2a9aaa0b720adb4a592209f b420d9b54caab8496e736572742064657374696e6174696f6e206469736b 9b00496e73657274206469736b207769746820007d56657220312e30319b 9b53656c6563743a9b9b313a20536872696e6b2061206469736b20746f20 612066696c659b9b323a20556e736872696e6b20612066696c6520696e74 6f2061206469736b9b9b333a205365742044656e736974799b9b463d466f 726d61742c443d444f532c423d426f6f749b9b5b6869742072657475726e 20666f722061206469726563746f72795d9b9b7f202043686f6963653a00 4b3aa25086a418a558692a8593a55969038594a90c9d42032044baa9039d 4203a9049d4a03a9028dc602a90c8dc502a9008dc80285a29d4b03a9a89d 4403a9b89d45032044baa908a0b820adb42036b9c931d0034c4906c932d0 034c43b6c933d0034cd9bac946d0034c0bbac944d00dadfebb850cadffbb 850d6c0a00c942d0034c77e4c99bd0c5208ebb4caab8a250a9ff8dfc02a9 019d4803a9009d4903a9079d4203a9929d4403a9009d45032044baa59220 97b4a592609b456e7465722066696c656e616d652c28c4cfcea7d4207479 70652074686520443a21299b00a961a0b920adb4a2008e4903a90d8d4803 a9058d4203a9b78d4403a9008d45032044baac4803a90099b700f0189b57 686963682064726976652077696c6c20686176652000a9b4a0b920adb420 e0b92036b985b585c74cc7b4a9b4a00020adb4609b456e74657220647269 7665206e756d626572202852455455524e3d41626f72742900a9e8a0b920 adb420d6b920fbb5a5c7c99bf012a9fe9d4203a9c69d4403a9009d450320 44ba4caab89bfd2020c9afcfa0c5d2d2cfd2adadbe002056e4bd4303101f c988f01b8592a90085a2a933a0ba20adb4a592209fb420fbb520d9b54caa b8602036b9c93190f9c939b0f538e930607d204368616e67652064656e73 69747920666f722077686963682064726976653a00447269766520697320 6e6f772000c4eff5e2ece59b00d3e9eee7ece59b007dfd20445249564520 43414e275420424520434f4e464947555245449b00a97ba0ba20adb4206c ba859da90085a420c7b42045bbad0303100da9bba0ba20adb420d9b54caa b8a5acd008a904a000a201d008a900a08084a3a20085ac84ae86ad2051bb a5a4f0016020fdbba99da0ba20adb4a5acd00da9b3a0ba20adb420d9b54c aab8a9aba0ba4c35bba9408d0303a94e8d0203d00aa9808d0303a94f8d02 03a9a78d0403a9008d0503a9318d0003a59d8d0103a9008d07038d0903a9 0a8d0603a90c8d08032059e4607d4472697665233a00a985a0bb20adb420 d6b9a220a90c9d42032044baa9039d4203a9069d4a03a9809d4b03a9c69d 4403a9009d45032044baa220a9059d4203a9809d44038d44039d48038d48 03a9059d45038d4503a9009d49038d49032044babd4303c901d00da9098d 4203a2002044ba4cbebb4c36b920ffffa909850ca9bc850d6020fdbb2000 bc4caab8ffff07be0cbeb3e8f2f5eeeb00ffff00508254d8a50c8dfebba5 0d8dffbb2000bc18ad06e469018d9ab4ad07e469008d9bb4a9008dc602a5 588580a5598581a9c285d4a95085d5a20086a38693a000b1d4c9fef01f38 8692e592859565938593a5959180e8e6d4d002e6d5e680d002e6814c3a50 a59385948df00218a55869a88580a55969008581a000989158a9ff8dfc02 adfc02c9fff008a9ff8dfc024cab50b1804980918020a050c8c00cd0e3a0 00f0dfa9fb8514a514d0fc854d60a594c99ba901859d2045bbad0303c901 d00285a34c74e4800102030405060708090a0b0c0d0e0f10111213141516 1718191a1b1c591e1f202122232425262728292a2b2c2d2e2f3031323334 35363738393a3b3c3d3e3f404142438687464748494a4b4c4d4e4f505152 535455565758595a5b5c5d5e5f606162ab32333435363738b5aeaf6e6f70 7172737475767778797ac3504b4c4d4e4f505152535455565758595a5b5c 5d1011125bd6d796e0e1e29a9b9c9d9e9fa0a1a2776a3f26273c3a403842 3f433c484344453435507938b9babb7e7f3e3f404118c3c4c5c6c7c8c9ca 4ba28f9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aab4a160e1e22baaa7a8e7e8 e940ebecedeeeff0f1f273cab7b8c4c5c6c7c8c9cacbcccdcecfd0d1dbdc c988090a8be2cfd00f515668131415161718191a9bf2dfe0d3c8c6a2c6cd d9dfa7dfd8dcd6df0304f1b0317ab30102f8b7b8fb843b3c3d3e3f404142 c31a0708c7c8edeffbedff02fcf5ff06d3d42b2c19d82f1b1f252620ece0 23e2ad6465666768696aeb422f30eff0f1222519281b252c2cfafbfc5354 41005743474f50065455560a288c8d8e8f9091925d616216646566676869 6a6b6c6d6e6f7071257374767f6b6f797a7b7c7d7e3250b4b5b6b7b8b9ba bbbcbd9293c0c10a90919293949596979899a1ce1750a793979aa2a3a4a5 a05abbdcdddedfe0e1e2e3ec7f66678269beb8b9babbbcbdbebfc0c1c2c3 c4c5c7bbbfc457555652459c510d05060708090a0b14a7d655101159ad5a 15165e60a3e7e8e9eaebecaae9e3e7766b73746f81c478352d2e2f303132 333435368d40427cd592454781084142434445464748494a4b4ca3565892 5152535455565758595a5b5c5d5ea6aeafa863abb3b4ad68696a6b6c6d6e 6f7071727374bcc4c5be797a7b7c7d7e7f80525455565758595a5b5c5d5e 5f606162636465666768696a6b6c6d6e6f70717273747576776ba7a8a52a 2b2c2d2e2f303132333435366a606b6369673e3e3f404142434445464748 494a4b4c4dcacfd0cd52535455565758595a5b5c5d5eacadaeafb0b1b266 6768696a6b6c6d6e6f707172737475f2f7f8f57a7b7c7d7e7f808182e5fd 9f86bbf0ee8ab1fbfff3fcf1ff92939495969798999a9b9c9d1a1f201da2 a3a406121a17a915191b241caf1124b2e319291b29b8df232f3630272c2d 303036c4c542474845cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcddde dfe0e1e2e3e4e5e6e7e8e9eaebeced6a6f706df2f3f4f519606c72fa2f6e 72616a00637b03366672777009307d6d7a7e837f7f12131415929798736c 6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a 8b8c8d8e8f81bffeffffe002e102005045cacbcccdcecfd0d1d2d3d4d5d6 d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebeced6a6f706df2f3f4 f519606c72fa2f6e72616a00637b03366672777009307d6d7a7e837f7f12 131415929798736c6d6e6f707172737475767778797a7b7c7d7e7f808182 838485868788898a8b8c8d8e8f81bf08 ----------------- CUT HERE ----- this is the end--------------------------