Convertir una cadena en Array

Post Reply
User avatar
jmua
Posts: 96
Joined: Tue Oct 11, 2005 5:56 am
Contact:

Convertir una cadena en Array

Post 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
José Martin Uriarte
jmuarg@yahoo.es
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post 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().
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
jmua
Posts: 96
Joined: Tue Oct 11, 2005 5:56 am
Contact:

Post 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().
José Martin Uriarte
jmuarg@yahoo.es
User avatar
jmua
Posts: 96
Joined: Tue Oct 11, 2005 5:56 am
Contact:

Post by jmua »

Gracias antonio lo pruebo y te comento
José Martin Uriarte
jmuarg@yahoo.es
R.F.
Posts: 840
Joined: Thu Oct 13, 2005 7:05 pm

Post by R.F. »

que tal un :

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

aArray := EVAL(&cCadena)
Saludos
R.F.
User avatar
ralph
Posts: 63
Joined: Fri Nov 18, 2005 11:15 pm
Location: Lima - PERU

Post by ralph »

Esta funcion que uso te debe servir:

Code: Select all

 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_
User avatar
jmua
Posts: 96
Joined: Tue Oct 11, 2005 5:56 am
Contact:

Post 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
José Martin Uriarte
jmuarg@yahoo.es
Post Reply