Thats the way i process csv, because of the cr/lf issue but also you can have double set of quotes inside a quoted field and of course have commas inside as well e.g. ,"field ""description,"" here", so you can not always just split on " or ,
Another alternative is to preprocess the csv using the linux tr command. -----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of Bill Haskett Sent: 26 May 2011 07:58 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 ----- No virus found in this message. Checked by AVG - www.avg.com Version: 10.0.1375 / Virus Database: 1509/3659 - Release Date: 05/25/11 _______________________________________________ U2-Users mailing list [email protected] http://listserver.u2ug.org/mailman/listinfo/u2-users
