11-13-2014 05:01 PM
I've seen code in programs where I work where people create a character variable from another character variable using the put function. What's the point?
I know here that they are trying to add 50 to the positions 12:13 inside the character variable hrlongid.
length serial $2;
length newsn 8;
Wouldn't the last statement have to replace positions 12:13 with another character variable?
Why can't serial just be substr(hrlongid,12,2)?
11-13-2014 05:35 PM
seems abundant to me. if they don't have length statement: "length serial $2;", then there is a difference:
with just substr(), the new variable will inherit the same length as the source variable, with put(substr(), $2.) structure, the new var will get the length defined in the informat.
11-13-2014 05:53 PM
While that may not be the most useful version of Putting a character variable consider:
You have code such as a stock ticker symbol: XYZ and you are combining it with boiler plate text and other variable to create a sentence like:
XYZ had an earnings (increase/decrease) of (value) dollars of the past (interval text).
XYZ could be Put using a custom format for this sentence to read
Alpha Beta Manufacturing, Inc. had ...
Also with a different format the same symbol could use a shorter version such as Alpha Beta, or a much longer piece of text. Not to mention yet another format that would place it into a category:
This placed <company name> among the <top/bottom> 3 companies in <industry type>.
11-13-2014 09:34 PM
Sometimes the answer turns out to be, "They didn't know any better."
It would make a little sense if they used INPUT instead of PUT (and 2. instead of $2.). That would eliminate messages about character to numeric conversion on the log when computing newsn.