Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-11-2021
Avatar de bulc
bulc bulc is offline
Miembro
 
Registrado: jun 2010
Posts: 415
Poder: 14
bulc Va por buen camino
Memo alterado juntar líneas impar y par

He aquí cómo quito líneas vacías en un Memo, y coloco las líneas pares con las impares. La secuencia original es: Linea vacía, Linea llena, Línea llena... y quiero añadir la tres a la dos. No sé si me explico.
El caso es que me gustaría usar un TStringList en lugar de dos TMemo. Seguro que se puede mejorar. Y es lo que propongo.
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject); // Usa dos TMemo: Memo1 y Memo2.
Var
   I: Integer;
begin
Memo2.Lines.Clear;
if (Memo1.Lines[0]='') then  Memo1.Lines.Delete(0);  // Corchete y paréntesis.
for I:= 0 to Memo1.Lines.Count - 1 do
    if (Memo1.Lines[i]='')     then
         Memo1.Lines.Delete(I) ;
ShowMessage ('Lineas Memo1: ' +  IntToStr (Memo1.Lines.Count ) );
for I:= 0 to Memo1.Lines.Count - 1 do
    if ( I Mod 2 = 0 ) then
        Memo2.Lines.Add( Memo1.Lines[i] + Memo1.Lines[I+1]   ) ;
        // Funciona bastante bien.
Responder Con Cita
  #2  
Antiguo 03-11-2021
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Poder: 20
movorack Va camino a la famamovorack Va camino a la fama
¡Hola, bulc!

No se si te logro comprender del todo lo que necesitas.

Código Delphi [-]
function TForm1.getLines2(Lines1: TStrings): TStrings;
  var
    i: integer;
begin
  Result := TStringList.Create;

  if (Lines1[0]='') then
    Lines1.Delete(0);  // Corchete y paréntesis.

  for I:= 0 to Lines1.Count - 1 do
    if (Lines1[i]='') then
      Lines1.Delete(I) ;

  ShowMessage ('Lines1: ' +  IntToStr (Lines1.Count ) );

  for I:= 0 to Lines1.Count - 1 do
    if ( I Mod 2 = 0 ) then
      Result.Add(Lines1[i] + Lines1[I+1]) ;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  Memo2.Lines.Assign(getLines2(Memo1.Lines));
end;
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita
  #3  
Antiguo 03-11-2021
engranaje engranaje is offline
Miembro
 
Registrado: may 2011
Posts: 163
Poder: 13
engranaje Va por buen camino
Me pasa igual que a Movorack y no tengo muy claro haber entendido bien. En mi caso entendí que te refieres a algo similar a esto:


Código Delphi [-]
procedure TForm1.Button2Click(Sender: TObject);
var
 lista: Tstringlist;
  i:integer;
begin
   lista:= tstringlist.create;
   try
      lista.LoadFromFile('C:\Prueba\entrada.txt');
      for i:= (lista.count-1) downto 0 do
         if lista[i] = '' then 
            lista.Delete(i);

      for i:= 0 to (lista.count - 1) do
         if ((i mod 2) = 0) and (i < (lista.count -1))then
            lista[i] :=  lista[i] + lista[i+1];

      lista.SaveToFile('C:\Prueba\salida.txt');
   finally
      lista.free;
   end;
end;


Para poder probarlo de forma fácil cargo los datos del Stringlist desde un fichero entrada.txt en el que puedes meter las líneas como quieras y después de procesarlo guardo el resultado en un fichero salida.txt

Última edición por engranaje fecha: 03-11-2021 a las 16:23:11.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Modificar lineas de un memo. Fat Varios 2 23-02-2015 13:32:33
sumar lineas de memo marareta OOP 5 24-08-2010 02:26:03
Lineas en campo memo erasmorc OOP 7 28-08-2008 06:58:31
sobrear lineas de un memo morfeo21 Varios 3 26-06-2003 22:23:30


La franja horaria es GMT +2. Ahora son las 23:05:25.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi