viernes, 15 de diciembre de 2017

Comprobar el contenido de un string

Muchas veces es necesario validar que una cadena de texto contenga solo ciertos caracteres, por ejemplo solo letras mayúsculas, minúsculas y números. Como todo hay mil formas de hacerlo, en este caso usaremos conjuntos, un ciclo FOR .. DO para recorrer el string, que de paso recordamos que su índice comienza con 1, y un condicional IF.. THEN. Todo esto, en una función que retornará True si el string contiene los caracteres "válidos" o False si alguno de ellos no cumple con la regla.

function ChequearContenido (const c:String) : Boolean;
var
  i:Integer;
begin
  for i:=1 to Length(c) do
    if not ( c[i] in ['A'..'Z', 'a'..'z', '0'..'9'] ) then Exit (False);
ChequearContenido:=True;
end;


Y todo sin siquiera la necesidad de recurrir a la definición de conjuntos.

miércoles, 13 de diciembre de 2017

Detener un programa mediante Halt

Halt es un procedimiento que al ser llamado, detiene el programa, "a lo bestia" podría decirse, sin vueltas, el programa finaliza. No es necesario un ejemplo, basta con llamar a Halt desde cualquier parte de nuestro código y listo.

Halt devuelve el control al programa que lo llamó, si el que lo llamó fue el sistema operativo, volverá a él, si fue otro programa, retornará a ese otro programa, por eso el procedimiento Halt permite un argumento (un integer) como valor de salida. Si este argumento no se especifica, su valor por default es cero.

Documentación oficial de Halt en FreePascal.org