I've done this in the past by doing this: SWAP DQUOTE WITH @AM
Now, in theory, every EVEN attribute is a 'quoted' string - don't touch the commas.... Every ODD attribute is a 'non-quoted' string... Double check me here in case I've lost it... but this should work ... seems this would be faster as well on larger records. Only thing you'd have to test for -- if the first character is a doublequote, we will have a blank first attribute and should not -- but that could be tested in the END ELSE section (IF XXX = 1 THEN IF DATASTRING[1,1] = 1 THEN CONTINUE) DATASTRING = 'A,B,"C,D",E,F,"G,H,I",J,K,L NEWSTRING = "" SWAP '"' WITH @AM IN DATASTRING AMCNT = DCOUNT(DATASTRING,@AM) FOR XXX = 1 TO AMCNT IF MOD(AMCNT,2) = 0 THEN NEWSTRING := @AM: DATASTRING<XXX> END ELSE DATAROW = NEWSTRING<XXX> SWAP ',' WITH @AM IN DATAROW NEWSTRING := @AM:DATAROW NEWSTRING<-1> = DATAROW END NEXT XXX -----Original Message----- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Wjhonson Sent: Wednesday, August 15, 2012 4:11 PM To: u2-users@listserver.u2ug.org Subject: [U2] CSV to Array Rex Gozar uploaded this code, and someone (perhaps him) corrected it, but there's a redundancy here. I'm trying to fix it, in my own version, mostly perhaps I *hate* the CONTINUE, but the logic is a bit convoluted eh? Anyone spot the redundancy ? EQU COMMA TO ',' EQU DQ TO '"' BUFFER = TEXT BUFPTR = 0 CPTR = 0 QUOTESW = @FALSE LOOP CPTR += 1 C = BUFFER[CPTR,1] WHILE (C NE "") DO IF (DQ EQ C) THEN IF (QUOTESW) AND (DQ:DQ EQ BUFFER[CPTR,2]) THEN CPTR += 1 END ELSE QUOTESW = NOT(QUOTESW) CONTINUE END END IF (COMMA EQ C) AND NOT(QUOTESW) THEN C = @FM END BUFPTR += 1 BUFFER[BUFPTR,1] = C REPEAT RECORD = BUFFER[1,BUFPTR] RETURN END _______________________________________________ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users _______________________________________________ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users