Parte 1ª - Tratamiento de cadenas de texto en Lazarus
En Lazarus tenemos un amplio repertorio de funciones para el análisis y manipulación de cadenas de texto. Así que sin más tardar pasemos a detallar algunas de las más importantes
El orden ahora entre cadenas es el siguiente:
Letras > Números
AdjustLineBreaks(const S);
AnsiCompareStr(const S1, const S2) : Integer;
Compara dos cadenas haciendo caso omiso de acentos. Esta comparación devuelve el siguiente resultado:
La comparación usa dos cadenas de texto (caracter a caracter) y nos dice si son iguales. Tiene en cuenta los caracteres ANSI(caracteres acentuados) y efectúa diferencia entre mayúsculas y minúsculas.
0 si S1 es igual que S2. Si ambas cadenas son iguales devuelve un 0.
> 0 si S1 es mayor que S2. Devolverá 1 si S1 es superior a S2
< 0 si S1 es menor que S2. Devuelve un -1 si S1 es inferior a S2.
Veamos unas comparaciones:
AnsiCompareStr( 'HOLA', 'HOLA' ); {devuelve 0}
AnsiCompareStr( 'HOLA', 'HOLa' ); {devuelve 1}
AnsiCompareStr( 'HOLa', 'HOLA' ); {devuelve -1}
¿Cuando considera Lazarus que una cadena de texto es superior a otra?, pues el orden es el siguiente:
Letras mayúsculas > Letras minúsculas Letras minúsculas > Números Program Comparamos;
{$H+}
Uses sysutils;
Procedure Comprobar(S1, S2 : String);
Var R : Longint;
begin
R := AnsiCompareStr(S1,S2);
Write ('"',S1,'" is ');
If R < 0 then
write ('less than ')
else
begin
If R = 0 then
Write ('equal to ')
else Write ('larger than ');
end;
Writeln ('"',S2,'"');
end;
Begin
Comprobar('One string','One smaller string');
Comprobar('One string','one string');
Comprobar('One string','One string');
Comprobar('One string','One tall string');
End.
|
AnsiCompareText(const S1, const S2) : Integer;
Es similar a AnsiCompareStr, pero se diferencia en que no distingue entre mayúsculas y minúsculas.
|
Veamos unas comparaciones:AnsiCompareText( 'HOLA', 'HOLA' ); {devuelve 0}AnsiCompareText( 'HOLA', 'HOLa' ); {devuelve 0}AnsiCompareText( 'HOLa', 'HOLA' ); {devuelve 0}AnsiCompareText( 'HOLA', 'HOLLA' ); {devuelve -1}AnsiCompareText( 'HOLLA', 'HOLA' ); {devuelve 1}
El orden ahora entre cadenas es el siguiente:
Letras > Números
AdjustLineBreaks(const S);
Cambiará todas las apariciones de los caracteres #13 y #10 por los caracteres de fin de línea correctos para el sistema operativo en el que se ejecute. Para windows sería #13 y #10. Para linux y Unix sería #10 y para Mac OS es #13.