Delphi 15 String, TString y TStringList
Delphi 15 String, TString y TStringList
var I: Integer;
begin
I := Length(MyString);
while I > 0 do
begin
MyString[I] := UpCase(MyString[I]);
I := I - 1;
end;
end;
Long String
AnsiString (o LongSTring) representa un string alocado dinámicamente
cuya longitud sólo está limitada por la cantidad de memoria disponible.
Utiliza caracteres de 8 bits.
Una variable long-string es un puntero de 4 bytes.
– Cuando la variable está vacía vale nil y el string no ocupa lugar en
memoria.
– Cuando la variable no está vacía, apunta a un área de memoria
dinámicamente alocada que contiene:
• el valor del string,
• un indicador de longitud de 32-bit
• un contador de referencias de 32-bit.
Esta memoria se reserva en la heap pero su manejo es automático
y no requiere código adicional.
Long String : reference counting
Como las variables long-string son punteros, dos o más de
ellos pueden referenciar el mismo valor sin consumir
memoria adicional.
Cuando una variable long-string es destruida o se le asigna
un nuevo valor, el contador de referencia del viejo string (el
valor previo de la variable) es decrementado y el contador de
referencia del nuevo valor (si lo hay) es incrementado.
Si el contador de referencia de un string llega a cero, su
memoria es liberada.
Este proceso se llama reference-counting.
AllocMemCount y AllocMemSize
AllocMemCount
– Esta variable representa la cantidad total de
bloques de memoria alocados en una
aplicación.
AllocMemSize
– Esta variable representa el tamaño total de
los bloques de memoria alocados.
Ejemplo Cant.de Bloques = 79
Cant.de Bloques = 81
80
Mem.Reserv = 1780
Mem.Reserv = 1812
1796
Var Tex1, Tex2, Tex3 : String;
Begin
writeln(AllocMemCount, ' ', AllocMemSize );
Tex1 := 'Ejemplo';
writeln(AllocMemCount, ' ', AllocMemSize );
Tex2 := Tex1;
Tex3 := Tex2;
writeln(AllocMemCount, ' ', AllocMemSize );
Tex2 := 'Nuevo';
writeln(AllocMemCount, ' ', AllocMemSize );
Tex1[1] := 'X';
writeln(AllocMemCount, ' ', AllocMemSize );
End;
Cant.Bloques = 82 ; Mem.Reserv = 1828
Declarando e inicializando Strings
Propiedades
– Duplicates : Indica si los strings duplicados pueden ser
agregados en listas ordenadas.
– CaseSensitive : indica cómo comparar los strings.
Métodos
– Sort : Ordena la lista de strings
Eventos
– OnChange : Ocurre después de modificar la lista
– OnChanging : ocurre antes de que se modifique la lista
TStringList1.dpr