FoxPro/Visual FoxPro - Recorrer caracteres de una matriz

   
Vista:

Recorrer caracteres de una matriz

Publicado por Fernanda (1 intervención) el 04/10/2012 19:10:20
Tengo un problema.
I.- Pedir al usuario que introduzca una palabra o frase de no más de 30 caracteres para que se
llene una matriz con la frase recorriendo una letra en cada renglón.
Ejemplo: “Que fea tarea examen”


Q U E F E A T A R E A E X A M E N
N Q U E F E A T A R E A E X A M E
E N Q U E F E A T A R E A E X A M
...........................
...................

y asi hasta que recorramos todas :S
LES AGRADEZCO MUCHO LA AYUDA.
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

Recorrer caracteres de una matriz

Publicado por Fidel (318 intervenciones) el 04/10/2012 21:23:05
Suponte que el control Text1 recoge el texto escrito
Text1.Valid (Evento Valid)
* Si no es un String vacío se controla que no exceda de 30 caracteres
* El método no cuenta los espacios en blanco intermedios ó finales.
IF !EMPTY(THIS.VALUE)
LcFrase=UPPER(STRTRAN(this.Value,CHR(32),""))
nLen=LEN(lcFrase)
IF nLen>30
lcOrigi=ALLTRIM(this.Value)
nSpaces=OCCURS(CHR(32),lcOrigi)
this.Value=PADL(lcOrigi,30+nSpaces)
RETURN 0
ENDIF
endif

Text1.LostFocus (Evento LostFocus)
* Si no es un string vacío
* se genera la matriz gaArray{}
* Se genera un archivo en bajo nivel para mostrar el resultado.
IF !EMPTY(this.Value)
lcFrase=UPPER(STRTRAN(this.Value,CHR(32),""))
nlen=LEN(LcFrase)
DIMENSION garray(nlen)
garray[1]=lcFrase
ni=nLen+1
FOR i=2 TO ALEN(garray)
ni=ni-1
garray[i]=PADL(SUBSTR(lcFrase,ni)+lcFrase,nLen)
NEXT

* Visualización del contenido de la matriz garray{}
FCR="traster.txt"
nfop=FCREATE(fcr)
FOR i=1 TO ALEN(garray)
=FPUTS(nfop,garray[i]+" Spaces="+LTRIM(STR(LEN(garray[i]))))
NEXT
=FCLOSE(nfop)
MODIFY FILE &fcr NOEDIT
ENDIF

Este es el contenido del archivo "Traster.txt" que genera este código con tu frase
QUEFEATAREAEXAMEN Spaces=17
NQUEFEATAREAEXAME Spaces=17
ENQUEFEATAREAEXAM Spaces=17
MENQUEFEATAREAEXA Spaces=17
AMENQUEFEATAREAEX Spaces=17
XAMENQUEFEATAREAE Spaces=17
EXAMENQUEFEATAREA Spaces=17
AEXAMENQUEFEATARE Spaces=17
EAEXAMENQUEFEATAR Spaces=17
REAEXAMENQUEFEATA Spaces=17
AREAEXAMENQUEFEAT Spaces=17
TAREAEXAMENQUEFEA Spaces=17
ATAREAEXAMENQUEFE Spaces=17
EATAREAEXAMENQUEF Spaces=17
FEATAREAEXAMENQUE Spaces=17
EFEATAREAEXAMENQU Spaces=17
UEFEATAREAEXAMENQ Spaces=17
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