[Thread Prev][Thread Next][Index]
[ferret_users] Generating zero-filled strings - for use in file-naming perhaps ( for example 25 -> "025" or "0025")
Quick Demo: Cut and paste this in Ferret
repeat/k=8:11 list/nohead substring("`k+10^3`",2,3)
--------------------------------------------------
Hello All,
A situation that comes up fairly often for me is creating, within
Ferret, a set of filenames for I/O, for example "image_001.gif" ...
"image_121.gif" in creating the frames of an animation.
In this case a "clunky" solution would be
repeat/k=1:9 ( go ptest ; frame/file="image_00"`k`".gif ")
repeat/k=10:99 ( go ptest ; frame/file="image_0"`k`".gif" )
repeat/k=100:121 ( go ptest ; frame/file="image_"`k`".gif" )
where "go ptest" just generates a sample plot on the screen.
While it's not rocket science, and has probably been used by others, it
just struck me that the "substring" function is well-suited to this task
(there may be other simple(r) methods for which the appropriate 2x4 has
not yet impinged on my cranium).
The 3-digit "001" ... "121" can be generated by adding 1000=10^3 and
lopping off the leading "1", as in
repeat/k=1:121 list/nohead substring("`k+10^3`",2,3)
Here the 2 never changes - it just says "start with the 2nd character".
The 3's specify the number of characters in the strings produced.
So to achieve the same result as the "clunky" three step frame naming
above, one could write
repeat/k=1:121 ( let id="image_"+substring("`k+10^3`",2,3)+".gif"
; go ptest ; frame/file=`id` )
Hope this is of use to others, (and is not already in the user group
archives)
Mick
[Thread Prev][Thread Next][Index]
Contact Us
Dept of Commerce /
NOAA /
OAR /
PMEL /
TMAP
Privacy Policy | Disclaimer | Accessibility Statement