× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



On 1/15/2014 1:12 PM, William Howie wrote:

I have a question about string manipulation. Here's the scenario:

* Three fields I'm combining into one 10-character text field with dashes between the values
* The three fields have these attributes:

o First field is numeric, length 10, no decimals
o Second is character, length 50
o Third is numeric, length 10, no decimals

I'm using the %CHAR BIF to convert the numeric fields into character fields, and then using %TRIM. From what I can see of the data, the significant values of each field, complete with dashes, would theoretically fit into my 10-character field, even though the lengths of any one of the three is as long by itself as my result field.

When I run my program, I get the value of the first field, with a dash after it, and the value of the second, and that's it, like so:

Field1: 36
Field2: 002
Field3: 3208

Becomes "36-2" in my result field. Now, I'm guessing there's a reason that the dash and the third field are getting cut off, but for the life of me I don't know what it is. If it was some sort of size constraint, I would think that all I would see is the first field to begin with, since it is 10 long, just like my result field. The reason may be really obvious, but I'm sure not seeing it. Can anyone out there enlighten me on why this is working this way? Thanks in advance.

Can you post your code?

These results could be caused by thinking the result field is varying,
when in fact it is fixed at 10 long. For instance:

// gives '36-002bbbb'
result = %trim(%char(field1)) + '-' + %trim(field2)

// appends '-3208' to the end of RESULT
// gives '36-002bbbb-3208'
// since RESULT is 10 long, the compiler
// correctly discards characters beyond the 10th
result = result + '-' + %trim(%char(field3))

// probably wanted to do this
// which strips off the 4 final blanks before
// trying to append FIELD3
result = %trim(result) + '-' + %trim(%char(field3))

// or maybe in one line:
result = %trim(%char(field1))
+ '-'
+ %trim(field2)
+ '-'
+ %trim(%char(field3));

--buck

As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.