Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-11-2013
elmago00 elmago00 is offline
Miembro
NULL
 
Registrado: ago 2013
Posts: 87
Poder: 14
elmago00 Va por buen camino
quiero el directorio mas el nombre del archivo. asi como aparece en la lista, pero sin el salto de linea,funciona perfecto con 825 direcciones de archivos, pero no puedo leer mas de eso, si lo hago aparece todo en blanco y quiero leer 5000 cadenas.
Responder Con Cita
  #2  
Antiguo 18-11-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola elmago00.

Creo que nlsgarcia se refiere a como deseas la salida en el memo, si es:
Código:
C:\Windows\System32\tasklist.exe
C:\Windows\System32\Taskmgr.exe
...
O si deseas eliminar todos los saltos de línea:
Código:
C:\Windows\System32\tasklist.exeC:\Windows\System32\Taskmgr.exe
...
Es decir que grafiques con un ejemplo como deseas el resultado en el memo.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 19-11-2013
elmago00 elmago00 is offline
Miembro
NULL
 
Registrado: ago 2013
Posts: 87
Poder: 14
elmago00 Va por buen camino
tal como tu lo pones en el segundo ejemplo, eliminar todos los saltos de linea y en lugar de hacer el salto que aparezca un espacio entre ellos. eso lo consigo pero repito solo 825 direcciones de ficheros, mas no puedo pues en el memo me aparece en blanco, al igual que cualquier variable a donde deseo enviar la información. solo funciona bien en showmessage, 5000 diferentes direcciones sin salto de linea, pero no lo asi, sino que en el memo.

Última edición por elmago00 fecha: 19-11-2013 a las 00:05:43.
Responder Con Cita
  #4  
Antiguo 19-11-2013
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 23
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
elmago00,

Cita:
Empezado por elmago00
...tal como tu lo pones en el segundo ejemplo, eliminar todos los saltos de linea y en lugar de hacer el salto que aparezca un espacio entre ellos...
Cita:
Empezado por ecfisa
...Creo que nlsgarcia se refiere a como deseas la salida en el memo...
Es correcto ecfisa, gracias

Revisa este código:
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function RemoveCRLF(S1 : TStrings) : String;
var
   i : Integer;
   S2 : String;

begin

   for i := 0 to S1.Count -1 do
   begin

      if Pos(#13,S1.Strings[i]) <> 0 then
         StringReplace(S1.Strings[i],#13,'',[rfReplaceAll]);

      if Pos(#10,S1.Strings[i]) <> 0 then
         StringReplace(S1.Strings[i],#13,'',[rfReplaceAll]);

       S2 := S2 + S1.Strings[i] + ' ';

   end;

   Result := S2;

end;

procedure TForm1.Button1Click(Sender: TObject);
var
   i : Integer;
   S : TStrings; // StringList : TStringList;

begin

   S := TStringList.Create;

   for i := 0 to 10 do
      S.Add('Text-' + IntToStr(i));

   Memo1.Text := RemoveCRLF(S);

   S.Free;

end;

end.
El código anterior elimina los caracteres de CR y LF de los strings contenidos en un TString y los sustituye por un espacio en blanco, asignando la salida resultante a un TMemo, como se muestra en la siguiente imagen:



Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 19-11-2013 a las 00:24:04.
Responder Con Cita
  #5  
Antiguo 19-11-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por elmago00 Ver Mensaje
...eliminar todos los saltos de linea y en lugar de hacer el salto que aparezca un espacio entre ellos...
Hola.

Entonces proba de este modo:
Código Delphi [-]
procedure DeleteCRLF(TS: TStrings);
begin
  TS.Text := StringReplace(TS.Text, #$D#$A, #$20, [rfReplaceAll]);
  TS.Text := StringReplace(TS.Text, #$D#$A#$D#$A, #$20, [rfReplaceAll]);
end;

Ejemplo de uso:
Código Delphi [-]
  DeleteCRLF(Memo1.Lines);

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #6  
Antiguo 19-11-2013
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 23
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
elmago00,

Continuación del Msg #18:

La correcta definición de la función RemoveCRLF es la siguiente:
Código Delphi [-]
function RemoveCRLF(S1 : TStrings) : String;
var
   i : Integer;
   S2 : String;

begin

   for i := 0 to S1.Count -1 do
   begin

      if Pos(#13,S1.Strings[i]) <> 0 then
         StringReplace(S1.Strings[i],#13,'',[rfReplaceAll]);

      if Pos(#10,S1.Strings[i]) <> 0 then
         StringReplace(S1.Strings[i],#10,'',[rfReplaceAll]);

       S2 := S2 + S1.Strings[i] + ' ';

   end;

   Result := S2;

end;
Espero sea útil

Nelson.
Responder Con Cita
  #7  
Antiguo 19-11-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por nlsgarcia Ver Mensaje
La correcta definición de la función RemoveCRLF es la siguiente:
Hola Nelson.

¿ Por que consideras incorrecta la definición del procedimiento RemoveCRLF ?

Una simple prueba basta para ver que funciona correctamente...
Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
var
  SR: TSearchRec;
begin
  Memo1.Clear;
  if FindFirst('C:\Windows\System32\*.*', faArchive, SR) = 0 then
  begin
    repeat
      Memo1.Lines.Add(SR.Name);
    until FindNext(SR) <> 0;
    FindClose(SR);
  end;
end;

procedure DeleteCRLF(TS: TStrings);
begin
  TS.Text := StringReplace(TS.Text, #$D#$A, #$20, [rfReplaceAll]);
  TS.Text := StringReplace(TS.Text, #$D#$A#$D#$A, #$20, [rfReplaceAll]);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  DeleteCRLF(Memo1.Lines);
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #8  
Antiguo 19-11-2013
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 23
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
ecfisa,

Cita:
Empezado por ecfisa
...¿ Por que consideras incorrecta la definición del procedimiento RemoveCRLF ? ...
Me refiero a la función RemoveCRLF no al procedimiento DeleteCRLF.

En la definición original de la función RemoveCRLF en el Msg #18, no se estaba eliminado el Carácter #10 (Salto de Línea), en la definición del Msg #20 si se elimina correctamente.

Espero que esto aclare el punto

Nelson.
Responder Con Cita
  #9  
Antiguo 19-11-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Me faltó hacer una aclaración, si la ruta+nombre de archivo son cargados en el memo de la forma que se hace en el mensaje #21, la línea que se encarga de quitar la separación de párrafos es innecesaria:
Código Delphi [-]
  TS.Text := StringReplace(TS.Text, #$D#$A#$D#$A, #$20, [rfReplaceAll]);
Pero como no sé como realizaba la carga elmago00, no lo quise librar al azar...

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Eliminar cadena con salto de linea Miguel89 Varios 3 25-04-2011 01:20:20
Parsear caracter una linea desde TStrings.... namtaxonlabs Varios 0 07-12-2010 20:01:51
Eliminar los "saltos de línea" de un TStrings.Text Neftali [Germán.Estévez] Trucos 0 08-06-2006 16:57:56
Eliminar salto de linea de una cadena pablomg8 Varios 2 13-05-2005 15:35:44
salto de linea bolofe Varios 2 24-04-2005 17:30:19


La franja horaria es GMT +2. Ahora son las 03:09:02.


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