Documentos de Académico
Documentos de Profesional
Documentos de Cultura
muchas herramientas para modificar cadenas de una manera fácil y rápida. En QB podemos
tener cosas como
En este caso la comparación se hace mediante el valor ASCII de cada cadena. Por citar un
ejemplo si tenemos
'Comparación de cadenas
cadena1$ = "QuickBASIC"
cadena2$ = "GW-BASIC"
CLS
IF cadena1$ < cadena2$ THEN
PRINT cadena1$; " es menor que "; cadena2$
ELSE
PRINT cadena1$; " es mayor que "; cadena2$
END IF
END
veremos que los valores ASCII de los caracteres de cada cadena son:
Algo que veremos, es que podemos tener cadenas de un tamaño de caracteres definido por
nosotros.
Ahora veamos algunas funciones del lenguaje que nos permiten manejar cadenas de caracteres.
CLS
PRINT "La cadena completa es "; : COLOR 15: PRINT saludo$
result$ = LEFT$(saludo$, 5): COLOR 7
PRINT "Los 5 caracteres mas a la izq. de la cadena son "; : COLOR 15: PRINT result$
END
RIGHT$(s$, n)
Función de cadena que devuelve los n caracteres de la cadena s$ que están mas a la derecha.
CLS
PRINT "La cadena completa es "; : COLOR 15: PRINT saludo$
result$ = RIGHT$(saludo$, 5): COLOR 7
PRINT "Los 5 caracteres que están mas a la derecha de la cadena son "; : COLOR 15: PRINT
result$
END
MID$
Sintaxis 1 (como función):
Devuelve una subcadena a partir de una posición determinada de una cadena.
MID$(cadena$, inicio[,longitud])
LTRIM$(c$)
Función de cadena que le quita los espacios iniciales a c$ (si los tiene). Bien útil.
CLS
PRINT cadena$
COLOR 7: PRINT
csinesp$ = LTRIM$(cadena$) 'quitándole los espacios
PRINT csinesp$ 'cadena sin espacios
RTRIM$(c$)
Función de cadena que le quita los espacios finales a c$ (si los tiene). También útil.
CLS
PRINT cadena$; "(fin de la cadena)"
COLOR 7: PRINT
csinesp$ = RTRIM$(cadena$) 'quitándole los espacios
PRINT csinesp$; "(fin de la cadena)" 'cadena sin espacios
END
BUSCANDO CADENAS
INSTR
Busca una cadena dentro de otra.
Sintaxis:
INSTR([inicio,] cadena_fuente, cadena_a_buscar)
CLS
INPUT "Introduce una cadena que contenga el texto <<magi>>: ", c$
lugar = INSTR(c$, "magi")
IF lugar <> 0 THEN
PRINT "<<magi>> encontrado en la posicion "; lugar
ELSE
PRINT "La cadena no contiene a <<magi>>"
END IF
END
CONVIRTIENDO DE MAYUSCULAS A MINUSCULAS O
VICEVERSA
UCASE$(cadena$)
Convierte a cadena$ a mayúsculas. Muy útil.
LCASE(cadena$)
Convierte a cadena$ a minúsculas.
DO
'Cabeceras
CLS
COLOR 10
PRINT TAB(26); "JUEGO DE LOS PALINDROMOMOS"
PRINT : PRINT : COLOR 7
CLS
INPUT "Introduce un numero ->> ", n
PRINT "La raiz cuadrada de"; n; "es"; SQR(n)
numcadena$ = STR$(n)
IF INSTR(numcadena$, ".") THEN 'Si la función retorna un valor <> 0
PRINT "El numero contiene decimales válidos"
ELSE
PRINT "El numero no contiene decimales válidos"
END IF
END
VAL(n$)
Devuelve a n$ como número. Este función terminará de inspeccionar a la cadena al momento en
que halle valores no-numéricos ó esta se termine.
CLS
INPUT "Introduce tu fecha de naciemiento (dd/mm/aaaa): ", fecha$
anno = VAL(RIGHT$(fecha$, 4))
ASC(c$)
Devuelve el valor ASCII del primer caracter de una cadena. Si la cadena es nula se produce un
error en tiempo de ejecución "Illegal function call" ("Llamado de función ilegal").
CLS
INPUT "Introduce un caracter: ", car$
PRINT "El VALOR ASCII correspondiente es"; ASC(car$)
END
CHR$(n)
Devuelve el ASCII correspondiente a n. El valor de n debe estar entre 0 y 255.
Un uso muy comun que se le da a esta funcion, es el esperar a que el usario presione una
determinada tecla:
'Hacer mientras que la tecla pulsada sea ninguna ("")
DO : LOOP WHILE INKEY = "" '("") es la cadena nula
FOR i = 1 TO 200000: NEXT 'Para que dure un tiempo. En TB puedes usar DELAY.
LOOP UNTIL INKEY$ = CHR$(13) 'INKEY$ lee una tecla pulsada. El caracter
'ASCII #13 corresponde a <ENTER>.
CLS
END
STRING$
Devuelve una cadena de un mismo caracter.
Sintaxis:
STRING$(n, c)
- n es el numero de caracteres que tendra la cadena
- c es el numero del codigo ASCII que corresponde al caracter que llevará la cadena. Debe
ser un valor entero 0 - 255.
STRING$(n, c$)
- n es el numero de caracteres que tendra la cadena
- c$ es el caracter que llevará de la cadena. Si es una cadena de más de un caracter solo se
tomará el primero.
CLS
PRINT TAB(20); STRING$(15, "*") + " CABECERA " + STRING$(15, 42)
END
---------------------------------------------------------------------------------------------------------
Curso de QuickBASIC 5ª Ed., por Tadeo E. Ortega Ch.
jafet_81@yahoo.com