>*#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 >