Clipper/FiveWin - convertir una cadena a un array

 
Vista:

convertir una cadena a un array

Publicado por Grulla_Loca (9 intervenciones) el 28/05/2008 20:44:10
Si Tengo la frase "Nosotros no somos como los Orozco. Yo los conozco, son ocho los monos: Pocho, Toto, Cholo, Tom, Moncho, Rodolfo, Otto, Pololo. Yo pongo los votos sólo por Rodolfo. Los otros son locos. Yo los conozco. No los soporto. Stop. Stop."
y necesito poner dentro de un array asi:

aVector[1] = Nosotros
aVector[2] = no
aVector[3] = somos
aVector[4] = como
aVector[5] = los
aVector[6] = Orozco.
aVector[7] = Yo
aVector[8] = los
aVector[9] = conozco,
aVector[.] = ..
aVector[,] = ...
aVector[n] = Stop.

Alguien sabe de alguna Funcion que haga esto ?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:convertir una cadena a un array

Publicado por Raúl (32 intervenciones) el 28/05/2008 21:24:59
No se si existirá una funcion que haga lo que pides, pero yo armaría una funcion mas o menos asi..

Function PALABRAS(_LaFrase)
*------------------------------------------*
Local cfrase:= _LaFrase
Local aPalabras:={} // Array de long. variable a cargar
Local nPos:=0, X:=1
DO WHILE X < LEN(cFrase)
nPos:=AT( " ",SUBSTR(cFrase,X) ) // P/BUSCAR el 1er. espacio en
//cFrase a partir de la posicion X y hasta el final
If nPos > 0 // Significa que encontro un espacio en blanco
aADD(aPalabras,{ SUBSTR( cFrase,X,nPos - 1) } )
X:= nPos
Endif
X++
ENDDO

Luego puedes recorrer aPalabras y supuestamente tendrias a las palabras separadas en cada uno de sus elementos.
FOR X = 1 TO LEN(aPalabras)
@ X,10 SAY aPalabras(X,1)
NEXT
......................

Espero que funcione..

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:convertir una cadena a un array

Publicado por Ricardo Ramirez E. (1 intervención) el 28/05/2008 23:51:58
Aki tienes otra alternativa sin usar AT

Function Palabritas(cPalabra)
Local i:=0
Local aArray:={} //aki guardas las palabras
Local cPal:="" , c:=""
cPalabra := Alltrim(cPalabra)
For i:=1 to Len(cPalabra)
If c:=Substr(Palabra,i,1) # " " //si no es espacio
cPal+=c //aki se va armando la palabra
else
AADD(aArray,cPal) //aki creas un elemento el aArray con la palabaras
cPal:=""
endif
next
Return Nil

Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:convertir una cadena a un array

Publicado por Raúl Gaitán (32 intervenciones) el 29/05/2008 01:05:44
Hola Ricardo:
Espero que tu Funcion si "funcione" y no como la que yo escribí que tenía varios errores.. 1ro... entraba en loop.. (jjeje).. 2do... No guardaba la ultima palabra..

Por las dudas.. ésta sería la funcion que creo que si funciona...

Function PALABRAS(_LaFrase)
*--------------------------*
Local cfrase:= ALLTRIM(_LaFrase)
Local aPala:={}
Local nPos:=0, X:=1,K:=0
DO WHILE X < LEN(cFrase)
nPos:=AT( " ",SUBSTR(cFrase,X) )
If nPos > 0 // Significa que encontro un espacio en blanco
aADD(aPala,{ SUBSTR( cFrase,X,nPos - 1) } )
X+=nPos
K:=X
else
X++
Endif
ENDDO
* Para cargar la ultima palabra..
If K > 0
aADD(aPala,{ SUBSTR( cFrase,K ) } )
Endif

FOR X = 1 TO LEN(aPala)
@ X,10 SAY aPala[X,1]
NEXT
RETURN .T.

Saludos..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:convertir una cadena a un array

Publicado por Ricardo Ramirez E. (201 intervenciones) el 29/05/2008 16:52:12
Raul... sip almacena la ulrtima palabra..

Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:convertir una cadena a un array

Publicado por Grulla_Loca (1 intervención) el 29/05/2008 02:40:44
Muchas Gracias por su Ayuda... asi quedo la la Funcion

Function Palabritas(cPalabra)

Local i:=0
Local aArray := {} //aki guardas las palabras
Local cPal:=""
Local c:=""

cPalabra := Alltrim(cPalabra)
For i:=1 to Len(cPalabra)

c := Substr(cPalabra,i,1)
If c # " " //si no es espacio
cPal := cPal + c //aki se va armando la palabra
Else
AADD(aArray,cPal) //aki creas un elemento el aArray con la palabaras
cPal:=""
Endif
Next

Return aArray

Gracias a todos nuevamente
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:convertir una cadena a un array

Publicado por Ricardo Ramirez E. (201 intervenciones) el 29/05/2008 10:23:47
...EL secreto esta en el nombre de la funcion Raul :) je,je,je

Saludos.!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:convertir una cadena a un array

Publicado por Raúl (32 intervenciones) el 29/05/2008 15:47:38
Parece que si... jejeje.. aunque me parece.. solo me parece.. que esa función tampoco almacenaría la ultima palabra..

Saludos!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:convertir una cadena a un array

Publicado por Grulla_Loca (9 intervenciones) el 29/05/2008 19:27:49
Sabes que asi quedo de diez porque justo todos los textos que lee
siempre al final tienen un caracter extraño que no lo necesito
y es como si fuera la ultima palabra
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:convertir una cadena a un array

Publicado por Ricardo Ramirez E. (201 intervenciones) el 29/05/2008 23:45:55
Vistes Raul??? insisto el secreto esta en el nombre de la funcion :)

Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:convertir una cadena a un array

Publicado por Ricardo Ramirez E. (201 intervenciones) el 30/05/2008 10:44:25
Grulla_Loca :

Volviendo a revisar la funcion palabritas veo que realmente no coge la ultima palabra si deseas que la misma funicone bien (aunque asi como esta te va de perlas dijistes :)

Añade esta linea al salir del For...Next :

AADD(aArray,cPal)

Raul :) parece que tienes un hincha pues hasta aplausos te envió... :)

Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:convertir una cadena a un array

Publicado por Grulla_Loca (9 intervenciones) el 30/05/2008 18:45:54
Lo tuve en cuenta... pero no me hizo falta porque justo la ultima palabra
es un caracter extraño que no lo necesito
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar