*#define USE_ALINES dimension laArray[1] clear lcString = "1 \n\n\n2\n4\n5" ? alines(laArray, strtran(lcString, "\n", chr(13))) ? ajoin(@laArray, "|") ? tokenize(@laArray, lcString, "\n") ? ajoin(@laArray, "|") lcString = "1 \n\n\n\n2\n4\n5\n" ? alines(laArray, strtran(lcString, "\n", chr(13))) ? ajoin(@laArray, "|") ? tokenize(@laArray, lcString, "\n") ? ajoin(@laArray, "|") lcString = "1 \n\n\n\n2\n4\n5\n\n\n\n" ? alines(laArray, strtran(lcString, "\n", chr(13))) ? ajoin(@laArray, "|") ? tokenize(@laArray, lcString, "\n") ? ajoin(@laArray, "|") dimension laArray[6] laArray[1] = "string" laArray[2] = 4.567 laArray[3] = 8 laArray[4] = .f. laArray[5] = datetime() laArray[6] = date() ? ajointrans(@laArray, "|") return function tokenize (taArray, tcString, tcDelimiter) if vartype(tcDelimiter) != 'C' tcDelimiter = " " endif local lnCount, i #ifdef USE_ALINES if version(5) >= 700 lnCount = alines(taArray, tcString, tcDelimiter) else lnCount = alines(taArray, strtran(tcString, tcDelimiter, chr(13))) endif #else local lcTwoDelimiters, lnDelimiterSize lcTwoDelimiters = tcDelimiter + tcDelimiter lnDelimiterSize = len(tcDelimiter) tcString = strtran(tcString, lcTwoDelimiters, tcDelimiter) lnCount = occurs(tcDelimiter, tcString) if lnCount < 1 dimension taArray[1] taArray[1] = tcString lnCount = 1 else local lnDelimiter, lcTempString, i dimension taArray[lnCount] lcTempString = tcString for i = 1 to lnCount lnDelimiter = at(tcDelimiter, lcTempString) taArray[i] = left(lcTempString, lnDelimiter - 1) lcTempString = substr(lcTempString, lnDelimiter + lnDelimiterSize) endfor if !(lcTempString == "") lnCount = lnCount + 1 dimension taArray[lnCount] taArray[lnCount] = lcTempString endif endif #endif return lnCount endfunc function ajoin (taArray, tcDelimiter) if vartype(tcDelimiter) != 'C' tcDelimiter = " " endif local lcString, i lcString = taArray[1] for i = 2 to alen(taArray) lcString = lcString + tcDelimiter + taArray[i] endfor return lcString endfunc function ajoinTrans (taArray, tcDelimiter) if vartype(tcDelimiter) != 'C' tcDelimiter = " " endif local lcString, i lcString = transform(taArray[1]) for i = 2 to alen(taArray) lcString = lcString + tcDelimiter + transform(taArray[i]) endfor return lcString endfunc