PDA

Ver la Versión Completa : leer caracter por caracter, una linea de un memo


douglas
05-10-2007, 05:09:45
buenas chicos, disculpen necesito leer caracter por caracter cada una de las lineas de un memo, se como leer linea por linea, pero caracter por caracter

dec
05-10-2007, 06:59:31
Hola,

Una línea o todo el texto de un Memo no es sino una cadena de caracteres, un "array de char", con la particularidad de que su índice comienza en "1" y no en "0". Y en Delphi es posible recorrer una cadena de caracteres de varias formas, como en un bucle "for", por ejemplo. Esto se resumiría así, más o menos:


var
s,t: string;
i,k: integer;
begin
s := 'Estás en el ClubDelphi';
k := Length(s);
for i := 1 to k do begin
// Estamos dentro de la cadena
t := t + s[i];
end;
// Mostrará "Estás en el ClubDelphi"
ShowMessage(t);
end;


También es posible recorrer una cadena al menos de otra forma: usando "punteros", a la manera de Federico Firenze, que pueda que sea más rápida que la anterior forma de hacerlo:


var
c: Char;
a,s,d: PChar;
l: integer;
begin
a := '';
s := 'Estás en el ClubDelphi';
l := Length(s);
d := Pointer(s);
// Vamos a recorrer la cadena "s"
while (l <> 0) do
begin
c := d^; // En "c" tenemos un caracter
// A modo de ejemplo lo añadiremos a "a"
a := PChar(a + c);
Inc(d);
Dec(l);
end;
// Mostrará "Estás en el ClubDelphi"
ShowMessage(a);
end;