Re: padding numbers in front of uniquely generatd names
- To: mathgroup at smc.vnet.net
- Subject: [mg48313] Re: padding numbers in front of uniquely generatd names
- From: "Peter Pein" <petsie at arcor.de>
- Date: Sun, 23 May 2004 06:15:39 -0400 (EDT)
- References: <c8kd3j$mri$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
"sean kim" <sean_incali at yahoo.com> schrieb im Newsbeitrag news:c8kd3j$mri$1 at smc.vnet.net... > hello group. > > below will do exactly what it';s supposed to do which is generate > unique file names. > > > StringJoin[Unique["plot"] // ToString, ".jpg"] > > > I wanted to pad 0's in front of my file names for the purpose of > sorting them in a folder by their names. without the 0's in front they > don't sort right. > > i found this in the archive that does sort of what i want to... > > With[{i = 1}, "data-" <> ToString[PaddedForm[i, 3, NumberPadding > ->{"0", "0"}]] ] > > or > > Table["data-" <> ToString[ PaddedForm[i, 3, NumberPadding -> "0"]], > {i, 0, 20}] > > > above work fine for making the names upfront then assigning them to > pictures, but what if i wanted to generate them as the algorythm runs. > now i thought this was gonna do it... > > > StringJoin[ToString[ PaddedForm[ Unique["plot"], NumberPadding -> > {"0", "0"}]], ".jpg"] > > but no, above is exactly the same as what I had before. > > Without using Table, or With, how do i change it so that above will > generate unique names with 0's padded? > > any thoughts will be most appreciated. > > thanks in advance > > sean > Hi Sean, I do not understand, why it is impossible to increment a variable - say plotnr - each time you want to save a plot, while your algorithm runs? plotnr=0; ...some calculations... plot=Plot[...]; Export["mywonderfulplot-" <> ToString[PaddedForm[++plotnr, 3, NumberPadding->{"0", "0"}]]<> ".jpg",plot, "JPG"]; ...go on with program... But since this doesnt work in your algorithm, you can use Unique: Suppose you want filenames of the form plotXYZ.jpg. Then StringInsert[#, StringTake["00", 3 - (StringLength[#] - 4)], 5] & [ToString[Unique["plot"]]] <> ".jpg" will do the job if Unique doesn't generate symbols with more than 3 digits. So it would be a good idea to do a Remove["plot*"] when starting a new job. -- Peter Pein, Berlin to write to me, start the subject with [