Yeah, I haven't tested the CASE statements yet. It's a typo. It should be wrapped in VAL() function.
>Jay,
>
>From the top of my head - needs testing
>
>lcFormat = 'W9N'
>
>lcFieldLength = chrtran(chrtran(m.lcFormat,'1234567890',''),'1234567890','')
>
>if not m.lcFieldLength ==""
> FieldLength = val(m.lcFieldLength)
>endif
>
>lnPos = at(m.lcFieldLength, m.lcFormat)
>
>if m.lnPos > 1
> lcStartLetters = left(m.lcFormat, m.lnPos - 1)
>endif
>
>Take also the rest of the formatting option
>
>
>Also I can not understand the code you posted. CHRTRAN() returns a character expression, but you treat it as numeric.
>
>
>>I have the code below to handle numeric. I have similar CASEs to handle other types. But now I have this to parse:
>>
>>W9N
>>
>>Which means that the output must have a "W" for the first character, followed by 9 numeric values. How can I handle these types of things?
>>
>> CASE INLIST(FieldVal,'N')
>> * Numeric
>> FormatValue = 'N'
>> FieldLength = CHRTRAN(FieldValue, FormatValue,'')
>> FieldType = CHRTRAN(FieldValue, FieldLength,'')
>> IF FieldLength = 0
>> FieldLength = 100
>> ENDIF
>>
>>
>>>I think we may have one function, say, FormatValue with these parameters
>>>
>>>FormatValue(FormatVal, FieldValue)
>>>
>>>FormatVal is something like '9N'
>>>and the FieldValue is the actual value of the field, e.g. SSN = "123456789"
>>>
>>>From 9N we get 9 and N so we know that we need to have 9 digits.
>>>
>>>Our case statements would only be for A, N, date formats and also for cases where we need to use particular first character, I guess.
>>>
>>>But I'm just thinking aloud, I'm not sure exactly if I'm thinking in the right direction or how easy it would be to implement.
>>>
>>>
>>>>So quick and such a seemingly simple answer. It must be harder than that.
>>>>
>>>>Well, I see it is much more involved, but maybe I'm wrong. I don't understand your example. Could you use my sample and explain that further?
>>>>
>>>>Also, I would think that there must be case statements, etc., to handle the different scenarios. Should I have a case statement based on the fields, CASE tFieldName = 'SSN', etc. for each field, then parse accordingly?
>>>>