Inicio > Programación > jmartinez6 > Como contar y ordenar los elementos de una cadena.

Como contar y ordenar los elementos de una cadena.

Experto:
Usuario:
Fecha: 16/05/2008
Valoración: (5,00 sobre 5) Categoría: Programación
16/05/2008
mazinger3000, usuario preguntando en Programación
Usuario
Hola Experto,
En Visual Foxpro, como puedo hacer para contar los elementos de una cadena considerando que cada elemento de esa cadena es de 10 caracteres y ademas como puedo ordenarla. Ejemplo:
cadena="01/01/2008 02/01/2008 25/01/2008 11/01/2008"
Gracias por su valiosa ayuda.
Saludos,
Severino
16/05/2008
mazinger3000, experto respondiendo en Programación
Experto
Hola Amigo, para dar respuesta a tu pregunta podriamos hacer la siguiente rutina:
CADENA="01/01/2008 02/01/2008 25/01/2008 11/01/2008"
CADENA2=""
nLONGITUD=LEN(CADENA)
nELEMENTOS=0
CREATE CURSOR XYZ (DATO C(10))
DO WHILE nLONGITUD>=10
nELEMENTOS=nELEMENTOS+1
cSUBCADENA=SUBSTR(CADENA,1,10)
INSERT INTO XYZ VALUES (cSUBCADENA)
CADENA=SUBSTR(CADENA,12,nLONGITUD-11)
nLONGITUD=LEN(CADENA)
ENDDO
SELE DATO FROM XYZ ORDER BY DATO INTO CURSOR ZZZ
SELE ZZZ
SCAN
IF RECNO()>1
CADENA2=CADENA2+' '
ENDIF
CADENA2=CADENA2+DATO
ENDSCAN
? CADENA2
? nELEMENTOS
CLOS TABLES ALL
Te explico, en la linea 2 creamos una cadena vacia en donde se almacenara el resultado de la cadena ordenada, en la linea 3 hallamos la longitud de la cadena, en la linea 4 creamos una variable que almacenara el # de elementos de la cadena, en la linea 5 creamos una tabla temporal para almacenar los elementos de la cadena, en la linea 6 creamos un bucle que controle los elementos que vamos a extraer, en la linea 7 incrementamos la variable que nos almacena el # de elementos, en la 8 extraemos una subcadena que contendra el elemento actual, en la 9 insertamos ese elemento en el cursor, en la 10 quitamos el elemento que extraimos en la 8, en la 11 actualizamos la nueva longitud de la cadena, en la 13 hacemos una pequeña sentencia SQL para ordenar los elementos en otro cursor, y el ciclo SCAN que sigue a continuación adiciona los elementos ordenados a CADENA2, para finalizar tienes ordenados los elementos de la CADENA en CADENA2 y tienes en # de elementos en nELEMENTOS, espero te sea util esta rutina.
Saludos desde Cúcuta - Colombia
16/05/2008
mazinger3000, usuario preguntando en Programación
Usuario
Gracias y Saludos para todos los Expertos.
Enlaces patrocinados