Thanks George. No need to convert back and forth because I can just test for Char(254) in a quote and change it to Char(253).

Bill

------------------------------------------------------------------------
----- Original Message -----
*From:* [email protected]
*To:* U2 Users List <[email protected]>
*Date:* 5/26/2011 5:14 AM
*Subject:* Re: [U2] [UD] Extract a line with a CR and/or LF character in it.
In your subroutine, if you first convert @FM ->  char(250)
Then do your line scan, when your inside a quote , if you encounter a char(250)
     convert it to a char(253)
once your done, convert char(250) back to @FM

If when your scanning, everytime you encounter a ", you flip the quoteon value
from 0 ->  1 ->  0  it shouldn't matter if you encounter double quotes

Now when your normal program extracts the data, it should already be 
multivalued!

George Gallen
Senior Programmer/Analyst
Accounting/Data Division
[email protected]
ph:856.848.9005 Ext 220
The Wyanoke Group
http://www.wyanokegroup.com
________________________________________
From: [email protected] 
[[email protected]] On Behalf Of Bill Haskett 
[[email protected]]
Sent: Thursday, May 26, 2011 2:57 AM
To: U2 Users List
Subject: Re: [U2] [UD] Extract a line with a CR and/or LF character in it.

I figured out how to do this.  I read each line and use a subroutine to
go through each character.  It sets a variable 'QuoteOn' if we're in a
quoted string.  Obviously if the line ends while in a quoted string, the
next line belongs to the current line.  Man, what a pain this was!  :-)

Thanks for your thoughts and help.

Bill

------------------------------------------------------------------------
----- Original Message -----
*From:* [email protected]
*To:* [email protected]
*Date:* 5/25/2011 10:13 PM
*Subject:* Re: [U2] [UD] Extract a line with a CR and/or LF character in
it.
It's been a while - but I'm pretty sure that OSBREAD keeps the CR/LF as part of the block 
(you may need to put NO CONVERT ON in the code). READSEQ automatically ends at the CR/LF 
so you would have to "put the lines together" if you were short fields.

In both cases it would mean going through the block/line a character at a time 
to parse out each field. Of course, to work with embedded quotes and commas you 
pretty much have to any way. With READSEQ you know the line ended on a CRLF - 
you just need to figure out if it's the end of the record or not.

Does that make more sense?

Hht
Colin Alfke
Calgary, Canada


From: wphaskett

I guess that's my problem. I can't use OSBREAD because the Cr/Lf
appears in different columns in the line. I can't guarantee where it
shows up (or what character position). Using READSEQ doesn't work
either because the line read by the statement is only a part of the
entire line in the file! e.g.

0,4300,1BEU,Robert,Smith,Julie,Smith,1 Lakewood Dr,,63031,"1 Lakewood Dr
San Diego, CA 92122",,,$150.00,,,,,
0,4300,1CYN,John Randolph,Bones,,,1 Round Ct,,63031,"1 Round Ct
San Diego, CA 92122",,,$150.00,,,,,

...when the lines should look like (only two lines):

0,4300,1BEU,Robert,Smith,Julie,Smith,1 Lakewood Dr,,63031,"1 Lakewood
Dr, San Diego, CA 92122",,,$150.00,,,,,
0,4300,1CYN,John Randolph,Bones,,,1 Round Ct,,63031,"1 Round Ct, San
Diego, CA 92122",,,$150.00,,,,,

There's no guarantee the field causing the problem will even have any
data in it, so I can't append every 2nd line to the end of every 1st
line. :-(

Once I get the line I can deal with each character at a time. Any other
ideas?

As always, thanks.

Bill
_______________________________________________
U2-Users mailing list
[email protected]
http://listserver.u2ug.org/mailman/listinfo/u2-users
_______________________________________________
U2-Users mailing list
[email protected]
http://listserver.u2ug.org/mailman/listinfo/u2-users

_______________________________________________
U2-Users mailing list
[email protected]
http://listserver.u2ug.org/mailman/listinfo/u2-users

Reply via email to