Page 1 of 1

Convertir una cadena en Array

PostPosted: Wed Jul 19, 2006 4:44 pm
by jmua
Hola chicos,
tengo una cadena con bastantes palabras y con delimitadores (",.;)
hay alguna funcion que me lo convierta en un array con las palabras.
Creo recordar que en Catools si que habia pero no vale esta libreria para Fw26h.

Saludos

PostPosted: Wed Jul 19, 2006 5:00 pm
by Antonio Linares
José Martin,

Puedes usar StrToken() de FWH para extraer las distintas palabras, usando el delimitador que le indiques. Revisa la documentación de StrToken().

PostPosted: Thu Jul 20, 2006 7:13 am
by jmua
Gracias Antonio.
Lo pruebo y te comento

Antonio Linares wrote:José Martin,

Puedes usar StrToken() de FWH para extraer las distintas palabras, usando el delimitador que le indiques. Revisa la documentación de StrToken().

PostPosted: Thu Jul 20, 2006 7:14 am
by jmua
Gracias antonio lo pruebo y te comento

PostPosted: Thu Jul 20, 2006 6:28 pm
by R.F.
que tal un :

cCadena := "{|| {"+cadenaquetienes+"}}"

aArray := EVAL(&cCadena)

PostPosted: Thu Jul 20, 2006 7:51 pm
by ralph
Esta funcion que uso te debe servir:

Code: Select all  Expand view
Function Str2Array( cString, cSepar )

local aString_ := {}

DEFAULT cSepar := ','

do while at( cSepar, cString ) <> 0
    aadd( aString_, trim( substr(cString,1,at(cSepar,cString)-1) ) )
    cString := trim( substr(cString,at(cSepar,cString)+1,len(cString)) )
enddo

aadd( aString_, cString )

return aString_

PostPosted: Fri Jul 21, 2006 2:04 pm
by jmua
Hola Foro,
Gracias a todos.

Este String es parte de lo que quiero convertir
Como se ve hay comas dentro de las cadenas

"CORTINOVA,S.A.","","CRTA.DE PRATS,KM.2.3","","","SABADELL","","","PERSIANAS DECORACION CR. SL"

Lo he solucionado con StrTran() y StrToken() asi:
Quiero extraer 59 Cadenas texto o numero de un string

For nToken := 1 To 59
1 Quito las comas que hay entre dos comillas y pongo otro caracter
cLine := StrTran(cLine,'","','|',1)
2 Quito todas las comillas dobles
cLine := StrTran(cLine,'"','',1)
3 Extraigo nToken con StrToken
cToken := StrToken( cLine, nToken, '|' )
aAdD(aTabla,cToken)
Next


Asi ha funcionado de maravilla.

Gracias a todos