Ver Mensaje Individual
  #2  
Antiguo 05-10-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Reputación: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
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:

Código Delphi [-]
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:

Código Delphi [-]
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;
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 05-10-2007 a las 07:08:27.
Responder Con Cita