Dec 2, 2002 #1 SMerrill Programmer Jan 19, 2002 145 US How do I print an integer with leading zeros, i.e. the value 6 printed as 0006 and the value 15 printed as 0015?
How do I print an integer with leading zeros, i.e. the value 6 printed as 0006 and the value 15 printed as 0015?
Dec 2, 2002 #2 dnivraramuk Programmer Dec 2, 2002 7 US U can try this: VAR_1 =sprintf("%.4d",value); The VAR_1 will contain the desired result. Upvote 0 Downvote
Dec 2, 2002 #3 marsd IS-IT--Management Apr 25, 2001 2,218 US Thanks for the workout I was getting rusty. I did it from an input like this: hjdjnmjd67md8dk349dmcd89f943m39d93m2 8rmdfnmf6e84mdrhf7ri4ner7f894m3nfr78 784jemd7e3i238fnmjie78rnmf7fr83mrmg7 The script looks like this: function Zeros(str, list) { while (match(str,/[0-9]+/) != 0) { list = length(list) < 1 ? substr(str,RSTART,RLENGTH) : list substr(str,RSTART,RLENGTH) printf "Old string = %s , LIST = %s\n", str, list str = substr(str,RSTART + RLENGTH,length(str) - RSTART + RLENGTH) printf "New string = %s\n", str } list = addZeros(list) return list } function addZeros(str, i,zlist,len) { i=0 len = length(str) while (i++ <= len) { zlist = length(zlist) < 1 ? str : "0" zlist } return zlist } { mylist = Zeros($0) print mylist } Try it, it's a lot of fun. Hopefully this gives you an idea if you need it for parsing data containing numbers, etc.. Your initial problem can be handled easily: function addZeroto(str) { if (length(str) == 1) { return "000" str } else if (length(str) == 2) { return "00" str } else if (length(str) == 3) { return "0" str } else { return str } } Upvote 0 Downvote
Thanks for the workout I was getting rusty. I did it from an input like this: hjdjnmjd67md8dk349dmcd89f943m39d93m2 8rmdfnmf6e84mdrhf7ri4ner7f894m3nfr78 784jemd7e3i238fnmjie78rnmf7fr83mrmg7 The script looks like this: function Zeros(str, list) { while (match(str,/[0-9]+/) != 0) { list = length(list) < 1 ? substr(str,RSTART,RLENGTH) : list substr(str,RSTART,RLENGTH) printf "Old string = %s , LIST = %s\n", str, list str = substr(str,RSTART + RLENGTH,length(str) - RSTART + RLENGTH) printf "New string = %s\n", str } list = addZeros(list) return list } function addZeros(str, i,zlist,len) { i=0 len = length(str) while (i++ <= len) { zlist = length(zlist) < 1 ? str : "0" zlist } return zlist } { mylist = Zeros($0) print mylist } Try it, it's a lot of fun. Hopefully this gives you an idea if you need it for parsing data containing numbers, etc.. Your initial problem can be handled easily: function addZeroto(str) { if (length(str) == 1) { return "000" str } else if (length(str) == 2) { return "00" str } else if (length(str) == 3) { return "0" str } else { return str } }
Dec 4, 2002 Thread starter #4 SMerrill Programmer Jan 19, 2002 145 US Thanks, folks. I ended up using this: printf(" %03d ",i) Upvote 0 Downvote