Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > Lazarus, FreePascal, Kylix, etc.
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-05-2011
chuli17 chuli17 is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 11
Poder: 0
chuli17 Va por buen camino
Question Ayuda a listar archivos en ListView

Hola buenas, aber si me podiais echar un vistacillo a ese codigo, lo que pasa es que listo las carpetas y archivos de unidades de disco duro y solo me da la primera carpeta o el primer archivo y con mas que le doy vueltas no consigo sacar el fallo... este es el code

Código Delphi [-]
if Copy(Date, 1, 14) = 'LISTARARCHIVOS' then
begin
Delete(Date, 1, 15); //Borra 'LISTARARCHIVOS|'
Newl := ListView1.FindCaption(0,Inttostr(Socket.SocketHandle),False,True,False); //Buscamos la conexión
if Newl <> nil then
begin
Form2.ListViewArchivos.Items.BeginUpdate;
(Newl.SubItems.Objects[0] as TForm2).ListViewArchivos.Clear; //Limpia primero...
if Length((Newl.SubItems.Objects[0] as TForm2).Edit1.Text) > 3 then
begin
//Newl := (Newl.SubItems.Objects[0] as TForm2).ListViewArchivos.Items.Add;
Newl.ImageIndex := 0;
(Newl.SubItems.Objects[0] as TForm2).ListViewArchivos.Items.Add.Caption := '<..>';
end;
//while Pos('|', Date) > 1 do
begin
TempStr := Copy(Date, 1, (Pos('|', Date) - 1));
Delete(Date, 1, Pos('|', Date)); //Borra lo que acaba de copiar
if TempStr[1] = #2 then //entonces le llegó una carpeta
begin
Delete(TempStr, 1, 1); //borra el #2
Newl := (Newl.SubItems.Objects[0] as TForm2).ListViewArchivos.Items.Add;
Newl.ImageIndex := 1; //1 es el icono de carpeta cerrada
Newl.Caption := TempStr;
Newl.SubItems.Add('');
Newl.SubItems.Add('Carpeta de archivos');
Newl.SubItems.Add('');
end
else //entonces es un archivo, saque tambien la información extra...
begin
Newl := (Newl.SubItems.Objects[0] as TForm2).ListViewArchivos.Items.Add;
Newl.ImageIndex := 2;
Newl.Caption := TempStr;
TempStr := (Copy(Date, 1, (Pos('|', Date) - 1)));
Delete(Date, 1, Pos('|', Date)); //Borra lo que acaba de copiar
Newl.SubItems.Add(TempStr + 'Kb'); //agrega el tamaño
TempStr := (Copy(Date, 1, (Pos('|', Date) - 1)));
Delete(Date, 1, Pos('|', Date)); //Borra lo que acaba de copiar
Newl.SubItems.Add(TempStr); //agrega el tipo
TempStr := (Copy(Date, 1, (Pos('|', Date) - 1)));
Delete(Date, 1, Pos('|', Date)); //Borra lo que acaba de copiar
Newl.SubItems.Add(TempStr); //agrega la fecha
end;
end;
end;
end;

Aber si me podeis echar una mano a encontrar ese error ke no deja listar todas las carpetas y archivos.... Gracias a todos

Última edición por chuli17 fecha: 06-05-2011 a las 13:51:18. Razón: Intentar porner imagenes pero no me lo permite
Responder Con Cita
  #2  
Antiguo 06-05-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿El error, cuál error?
Responder Con Cita
  #3  
Antiguo 06-05-2011
chuli17 chuli17 is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 11
Poder: 0
chuli17 Va por buen camino
Hola de nuevo, lo siento si me esplico mal esque nose como esplicarme, aber error no da ninguno solo es que ala ora que listo por ejemplo C:\ solo me sale la primera carpeta o el primer archivo que en mi caso seria "Archivos de programa" y las demas carpetas y archivos no salen, no se si asi me esplico mejor...
Responder Con Cita
  #4  
Antiguo 06-05-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Si lo que quieres es listar los ficheros de un directorio entonces busca por "findfirst" y "findnext"
Responder Con Cita
  #5  
Antiguo 06-05-2011
chuli17 chuli17 is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 11
Poder: 0
chuli17 Va por buen camino
Aber lo que estoy aciendo es un Filemanager con un cliente y un servidor, tengo un Combobox donde se listan las unidades de disco duro al selecionar alguna de las unidades por ejemplo C:\ del combobox se listan todos los archivos y carpetas que alla en esa unidad y el ploblemas es ese que solo lista la primera carpeta o archivo que alla.
Responder Con Cita
  #6  
Antiguo 08-05-2011
chuli17 chuli17 is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 11
Poder: 0
chuli17 Va por buen camino
Ya e sacado el fallo, asi quedo el codigo




Código Delphi [-]
if Copy(Date, 1, 14) = 'LISTARARCHIVOS' then
begin
Delete(Date, 1, 15); //Borra 'LISTARARCHIVOS|'
Newl := ListView1.FindCaption(0,Inttostr(Socket.SocketHandle),False,True,False); //Buscamos la conexión
if Newl <> nil then
begin
Form2.ListViewArchivos.Items.BeginUpdate;
(Newl.SubItems.Objects[0] as TForm2).ListViewArchivos.Clear; //Limpia primero...
if Length((Newl.SubItems.Objects[0] as TForm2).Edit1.Text) > 3 then
begin
Newl.ImageIndex := 0;
(Newl.SubItems.Objects[0] as TForm2).ListViewArchivos.Items.Add.Caption := '<..>';
end;
while Pos('|', Date) > 1 do
begin
TempStr := Copy(Date, 1, (Pos('|', Date) - 1));
Delete(Date, 1, Pos('|', Date)); //Borra lo que acaba de copiar
if TempStr[1] = #2 then //entonces le llegó una carpeta
begin
Newl := ListView1.FindCaption(0,Inttostr(Socket.SocketHandle),False,True,False); //Buscamos la conexión
if Newl <> nil then
Delete(TempStr, 1, 1); //borra el #2
Newl := (Newl.SubItems.Objects[0] as TForm2).ListViewArchivos.Items.Add;
Newl.ImageIndex := 1; //1 es el icono de carpeta cerrada
Newl.Caption := TempStr;
Newl.SubItems.Add('');
Newl.SubItems.Add('Carpeta de archivos');
Newl.SubItems.Add('');
end
else //entonces es un archivo, saque tambien la información extra...
begin
Newl := ListView1.FindCaption(0,Inttostr(Socket.SocketHandle),False,True,False); //Buscamos la conexión
if Newl <> nil then
Newl := (Newl.SubItems.Objects[0] as TForm2).ListViewArchivos.Items.Add;
Newl.ImageIndex := 2;
Newl.Caption := TempStr;
TempStr := (Copy(Date, 1, (Pos('|', Date) - 1)));
Delete(Date, 1, Pos('|', Date)); //Borra lo que acaba de copiar
Newl.SubItems.Add(TempStr + 'Kb'); //agrega el tamaño
TempStr := (Copy(Date, 1, (Pos('|', Date) - 1)));
Delete(Date, 1, Pos('|', Date)); //Borra lo que acaba de copiar
Newl.SubItems.Add(TempStr); //agrega el tipo
TempStr := (Copy(Date, 1, (Pos('|', Date) - 1)));
Delete(Date, 1, Pos('|', Date)); //Borra lo que acaba de copiar
Newl.SubItems.Add(TempStr); //agrega la fecha
end;
end;
end;
end;



lo dejo por si a alguien le puede sevir como ejemplo. Ya podeis cerrar el post si quereis. Gracias.

Última edición por chuli17 fecha: 08-05-2011 a las 23:59:36.
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
Listar archivos? jam888 Varios 12 23-05-2020 01:31:13
Listar Archivos y Eliminar lKinGl PHP 3 12-06-2008 14:23:59
Listar archivos en un directorio vivamotos C++ Builder 1 04-01-2008 11:56:08
Listar archivos de directorio a travez de FTP ilichhernandez Internet 6 22-09-2006 01:03:14
Listar archivos d 1a URL y descargarlos Descendents Internet 0 06-11-2003 17:29:41


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


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