Smart stuff. I make heavy use of my own routines to do this sort of stuff and I see I needn't have bothered. It's not my inability to cobble up what's needed, as it's needed (a mundane skill for someone who hates looking up documentation), but the time entailed in testing out homespun routines (voluntary or enforced). Freedom from gotchas is more vital to me than naked machine efficiency, so it's good to use something venerable like printf.
Henry's solution will suit a requirement I often encounter: handling ids of the form: abc00123, ie treating those trailing digits as a sort of Veeder counter. But let me just ask this, as a rider to Skip's request: What's people's fave way to generate the next (or previous) id in a series, eg 'abc00100' from the string 'abc00099'? Much software bilks the user, stepping say from: "image9.tiff" to: "image10.tiff". This is unhelpful when sorting generated filenames in a Fileman or Finder window Ignore the obvious problem with: abc99999 --depend on having enough 0s in there. Don't demand a parameter like 3 or 'abc' to isolate the suffix. Oh, and don't assume the prefix is digit-free. There can be 1 to 8 digits in the suffix, so you can employ 100000000+y and drop the '1'. Restrict to +integer suffixes (stepping back abc00000 should wraparound to abc99999) but beware the prefix might actually end with '-' or '_', viz: abc_002. On Mon, Jan 31, 2011 at 10:53 PM, Skip Cave <[email protected]> wrote: > On 1/31/2011 3:29 PM, Henry Rich wrote: >> > 'abc _%d = %s.txt' vbsprintf (3{.a) ;"0 (3{. b) > > That's very nice. I hadn't looked into printf much before, but it makes > those kinds of text manipulations pretty easy. > > Thanks for the help. > > Skip > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
