I think 'suffix' is not defined. It looks like Dan posted a draft where he was migrating from using prefix/suffix globals to pfx/sfx defined from x.
I'd either define the globals or complete the transition. (Untested, though - I might be wrong.) Thanks, -- Raul On Sat, Dec 14, 2013 at 11:55 AM, Brian Schott <[email protected]> wrote: > Dan, > > Thank you very much. That looks terrific. > > I am having a little trouble making it work on my Mac. Do you see the > problem based on the error message below? > > Btw, I am suspicious of the noun `suffix` because it doesn't look like it > is defined. I can debug further myself, but I thought you would like to > know my progress. > > 'combined png' flipOddPages '/Users/brian/Documents/combined\ not' > |stack error: pn > | fn,.<@;"1(<pfx,' '),. (":&.>pn),.<'.',sfx > > > > On Sat, Dec 14, 2013 at 11:28 AM, Dan Bron <[email protected]> wrote: > >> Saw your message come in and have just been noodling around with the idea >> of >> reversing only the odd pages. Does the following help? >> >> flipOddPages=:verb define >> 'comb png' flipOddPages y >> : >> NB.y=directory to scan, x=file prefix and suffix >> 'pfx sfx'=.2 {. (;:^:(0=L.) x),<'png' >> dir =. (,'\'-.{:)y >> >> NB. Scan directory >> fn =. {. |: 1!:0 jpath dir,prefix,'*',suffix >> >> NB. Zero-fill here will convert comb.png to comb 0.png >> NB. The increments account for the space after comb and >> NB. the dot before png respectively. >> pn=.0 ".&> (1+#pfx) }.&.> (-1+#sfx)}.&.> fn >> >> NB. Reverse order of odds >> pn=.(+ 2&| * #-+:) pn >> >> NB. Table of old-filename, new-filename >> fn ,. <@;"1 (<pfx,' '),.(":&.> pn),.<'.',sfx >> ) >> >> Here, if you had a subdirectory in your J temp folder named 'archive1', >> with >> 10 files in it ('comb.png' plus 'comb 1.png' through 'comb 9.png'), you'd >> call it like this: >> >> flipOddPages '~temp\archive1' >> +----------+----------+ >> |comb 1.png|comb 9.png| >> +----------+----------+ >> |comb 2.png|comb 2.png| >> +----------+----------+ >> |comb 3.png|comb 7.png| >> +----------+----------+ >> |comb 4.png|comb 4.png| >> +----------+----------+ >> |comb 5.png|comb 5.png| >> +----------+----------+ >> |comb 6.png|comb 6.png| >> +----------+----------+ >> |comb 7.png|comb 3.png| >> +----------+----------+ >> |comb 8.png|comb 8.png| >> +----------+----------+ >> |comb 9.png|comb 1.png| >> +----------+----------+ >> |comb.png |comb 0.png| >> +----------+----------+ >> >> The resulting table is a mapping of original filenames to corrected >> filenames, where the order of the odd pages has been reversed (and the >> first >> page has been made consistent by adding an index, 0). Actually renaming the >> files is left as an exercise for the reader (but isn't difficult). >> >> While packaging this up for re-use, I noticed it had a very familiar >> structure. >> >> read filenames >> parse filenames (drop pfx+' ', sfx+'.') >> multiply page number by two >> subtract count >> residue page number by two >> format filenames (tack pfx+' ',sfx+'.') >> write filenames >> >> Now, I don't think it'd be worthwhile to rewrite the verb using under, >> especially since it's got side-effects and the central &. is a bit iffy, >> but >> I thought it interesting nonetheless. >> >> (Or maybe if one spends too much time with J, he begins to see unders >> everywhere :) >> >> -Dan >> >> >> -----Original Message----- >> From: [email protected] >> [mailto:[email protected]] On Behalf Of Brian Schott >> Sent: Saturday, December 14, 2013 10:00 AM >> To: Chat forum >> Subject: [Jchat] Fwd: Archive j >> >> I have been studying ways to digitally archive old paper reports using a >> one-sided scanner with an automatic paperfeed. Two options have occurred to >> me. >> >> One. Scan to a single PDF file, >> Two. Scan to a folder containing multiple PNG files. >> >> The options are very similar except that the PDF mode seems to take >> considerably more disk space. >> >> Both methods suffer slightly when the original documents are two-sided >> because either the pages are out of order (in the PDF) or the numbering of >> the individual files in the folder is out of order. >> >> I would like to implement a routine for the second option that would rename >> the multiple PNG files. So I have developed some simple J verbs to create >> the indexes of the filenames, but I do not know how to associate those >> results with the original files and rename the original files correctly in >> the case of two-sided originals.That is where I would like some help >> especially in knowing what part of the task can be done in J and what part >> is done in unix batch files. >> >> Notice in the "typical" example below of four pages that the pages of the >> second side are in the reverse of the correct order and that the very first >> page does not have a number associated with it. >> >> server:Documents brian$ ls -l combined\ not total 872 >> -rw-r--r-- 1 brian staff 88517 Dec 14 09:13 combined 1.png >> -rw-r--r-- 1 brian staff 119690 Dec 14 09:13 combined 2.png >> -rw-r--r-- 1 brian staff 129123 Dec 14 09:13 combined 3.png >> -rw-r--r-- 1 brian staff 100494 Dec 14 09:13 combined.png >> server:Documents brian$ ls -l combined.pdf -rw-r--r--@ 1 brian staff >> 971300 Dec 12 08:22 combined.pdf >> >> >> Below are the J verbs for creating indexes based on the number of files in >> a >> directory. >> >> nodd=: >.@-: >> neven=: <.@-: >> odd=: >:@+:@i.@nodd >> even=: 2+|.@:+:@i.@neven >> zero=: '0'&,@":"0 >> >> Note 'some test cases' >> <@:even"0] 0 1 2 3 4 >> <@:odd"0] 0 1 2 3 4 >> zero odd 4 >> zero even 3 >> zero even 0 >> 1&|. zero (odd,even) 4 NB. this would be most like >> NB. a production case because it would >> NB. match the order of the file list in the original ls >> ) >> >> Thanks, >> >> --- >> (B=) >> ---------------------------------------------------------------------- >> For information about J forums see http://www.jsoftware.com/forums.htm >> >> ---------------------------------------------------------------------- >> For information about J forums see http://www.jsoftware.com/forums.htm >> > > > > -- > (B=) <-----my sig > Brian Schott > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
