Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Equivalent to VBs join function
Message
From
12/07/2001 15:55:02
 
 
To
12/07/2001 09:18:13
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Miscellaneous
Thread ID:
00529650
Message ID:
00529962
Views:
8
*#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
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform