Go Back   Rhinocerus > Newsgroup > Newsgroup comp.lang.* 1 > Newsgroup comp.lang.postscript

Reply
 
Thread Tools Display Modes
  #1 (permalink)  
Old 07-13-2012, 11:03 AM
Daniel Taylor
Guest
 
Posts: n/a
Default Simple string padding function in Postscript

I want to write a simple function to convert and integer into a string 6 characters in length, padding with zeros as necessary. The function add the necessary zeros to the front of the string to make the overall length 6. Ideally I could pass the function the integer, and the length I want the string to be.

For example, if I input '1' I want the function to return '000001'

or if input '123' I want the function to return '000123'.

I've only recently started learning Postscript programming and this is one application I haven't been able to solve.
Reply With Quote
Alt Today
Advertising
 
and become member of Rhinocerus
Standard Sponsored Links

  #2 (permalink)  
Old 07-13-2012, 06:42 PM
tlvp
Guest
 
Posts: n/a
Default Re: Simple string padding function in Postscript

On Fri, 13 Jul 2012 04:03:45 -0700 (PDT), Daniel Taylor wrote:

> I want to write a simple function to convert and integer into a string 6 characters in length, padding with zeros as necessary. The function add the necessary zeros to the front of the string to make the overall length 6. Ideally I could pass the function the integer, and the length I want the string to be.
>
> For example, if I input '1' I want the function to return '000001'
>
> or if input '123' I want the function to return '000123'.
>
> I've only recently started learning Postscript programming and this is one application I haven't been able to solve.


That's less a problem in PostScript than a problem in algorithmic
arithmetic.

Your desired left-most digit is the integer value, before remainder, of
dividing your given number by 100,000.
Your next desired digit is the integer value, before remainder, of dividing
the *remainder* from the previous division by 10,000.
Your next ... " ... " ... by 1,000. % by ... " ... " ... I mean 'ditto' .
And likewise, for 100, 10, and 1, respectively.

That's the algorithmic arithmetic. How to accomplish those 6 steps in
PostScript -- and perhaps how to implement them in a loop -- I leave as a
worthwhile PostScript exercise for you :-) .

Cheers, -- tlvp
--
Avant de repondre, jeter la poubelle, SVP.
Reply With Quote
  #3 (permalink)  
Old 07-13-2012, 07:19 PM
Helge Blischke
Guest
 
Posts: n/a
Default Re: Simple string padding function in Postscript

Daniel Taylor wrote:

> I want to write a simple function to convert and integer into a string 6
> characters in length, padding with zeros as necessary. The function add
> the necessary zeros to the front of the string to make the overall length
> 6. Ideally I could pass the function the integer, and the length I want
> the string to be.
>
> For example, if I input '1' I want the function to return '000001'
>
> or if input '123' I want the function to return '000123'.
>
> I've only recently started learning Postscript programming and this is one
> application I haven't been able to solve.


A fairly simple solution (without algorithmic arithmetic) is by the
following procedure:

/bindec % <integer> bindec <string_of_length_6>
{
1000000 add 7 string cvs 1 6 getinterval
}bind def


Helge

Reply With Quote
  #4 (permalink)  
Old 07-13-2012, 09:37 PM
Daniel Taylor
Guest
 
Posts: n/a
Default Re: Simple string padding function in Postscript

On Saturday, 14 July 2012 07:19:24 UTC+12, Helge Blischke wrote:
> Daniel Taylor wrote:
>
> &gt; I want to write a simple function to convert and integer into a string 6
> &gt; characters in length, padding with zeros as necessary. The function add
> &gt; the necessary zeros to the front of the string to make the overall length
> &gt; 6. Ideally I could pass the function the integer, and the length I want
> &gt; the string to be.
> &gt;
> &gt; For example, if I input '1' I want the function to return '000001'
> &gt;
> &gt; or if input '123' I want the function to return '000123'.
> &gt;
> &gt; I've only recently started learning Postscript programming and this is one
> &gt; application I haven't been able to solve.
>
> A fairly simple solution (without algorithmic arithmetic) is by the
> following procedure:
>
> /bindec % &lt;integer&gt; bindec &lt;string_of_length_6&gt;
> {
> 1000000 add 7 string cvs 1 6 getinterval
> }bind def
>
>
> Helge


That's a fantastic help thank you. Very simple and very easy for me to get my head around.

Regards

Daniel
Reply With Quote
  #5 (permalink)  
Old 07-14-2012, 03:20 AM
tlvp
Guest
 
Posts: n/a
Default Re: Simple string padding function in Postscript

On Fri, 13 Jul 2012 21:19:24 +0200, Helge Blischke wrote:

> Daniel Taylor wrote:
>
>> I want to write a simple function to convert and integer into a string 6
>> characters in length, padding with zeros as necessary. The function add
>> the necessary zeros to the front of the string to make the overall length
>> 6. Ideally I could pass the function the integer, and the length I want
>> the string to be.
>>
>> For example, if I input '1' I want the function to return '000001'
>>
>> or if input '123' I want the function to return '000123'.
>>
>> I've only recently started learning Postscript programming and this is one
>> application I haven't been able to solve.

>
> A fairly simple solution (without algorithmic arithmetic) is by the
> following procedure:
>
> /bindec % <integer> bindec <string_of_length_6>
> {
> 1000000 add 7 string cvs 1 6 getinterval
> }bind def
>
>
> Helge


Elegant, Helge :-) . Alas, each of us is congenitally predisposed to see
each problem as the sort of nail our own unique hammers can deal with, and
thereupon we deal with it accordingly. In this instance, your hammer is by
far the more appropriate, as is your perspective on the problem :-) .

Cheers, -- tlvp
--
Avant de repondre, jeter la poubelle, SVP.
Reply With Quote
 
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off




All times are GMT. The time now is 04:54 PM.


Copyright ©2009

LinkBacks Enabled by vBSEO 3.3.0 RC2 © 2009, Crawlability, Inc.