Convertir una cadena en Array

Convertir una cadena en Array

Postby jmua » Wed Jul 19, 2006 4:44 pm

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

Postby Antonio Linares » Wed Jul 19, 2006 5:00 pm

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
Antonio Linares
Site Admin
 
Posts: 41469
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby jmua » Thu Jul 20, 2006 7:13 am

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

Postby jmua » Thu Jul 20, 2006 7:14 am

Gracias antonio lo pruebo y te comento
José Martin Uriarte
jmuarg@yahoo.es
User avatar
jmua
 
Posts: 96
Joined: Tue Oct 11, 2005 5:56 am

Postby R.F. » Thu Jul 20, 2006 6:28 pm

que tal un :

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

aArray := EVAL(&cCadena)
Saludos
R.F.
R.F.
 
Posts: 840
Joined: Thu Oct 13, 2005 7:05 pm

Postby ralph » Thu Jul 20, 2006 7:51 pm

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_
User avatar
ralph
 
Posts: 70
Joined: Fri Nov 18, 2005 11:15 pm
Location: Lima - PERU

Postby jmua » Fri Jul 21, 2006 2:04 pm

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


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 46 guests