Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

 
 
Herramientas Buscar en Tema Desplegado
  #8  
Antiguo 14-06-2007
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 22
cHackAll Va por buen camino
Cool No problem

Cita:
Empezado por JuanErasmo
...pero tengo un problema grave,,,,
Manejo C++ Builder, y me da mucha dificultad traducir tu codigo,,,,
Creo que ya me quedo claro con tu segundo post amigo!

Cita:
Empezado por JuanErasmo
...podrias ayudarme? o sera mucho pedir??...
Aunque me parece un poco agrasivo tu comentario, hare lo que pueda pues yo programo en Delphi y bueno al grano; encontre un foro que tiene parte de lo que necesitas... y la otra que necesitas esta acá. Yo se que no entenderas todo lo escrito en el foro, pero intenta comparar el código con el que yo hice en Delphi... las APIs son las mismas.

Ahora te explico un poco: es como si hicieras DIR, (te explico así pues es un idioma que estoy seguro ambos entenderemos), la lista de este dir la guardas en un TStrings que es un vector de cadenas. Hecho esto esperas a que el WaitForSingleObject se dispare con un cambio en el directorio, cuando ésto sucede vuelves a usar la API FindFirstFile, FindNextFile, etc... pero en ves de llenar los nombres en la lista, buscas los nombres, borras, los items que ya existan, y los que no los añades (en la misma lista claro).

Código Delphi [-]
var List: TStrings; // Es el vector de cadenas
 
var Handle: Cardinal; Index: Integer; FindData: TWin32FindData; // declaracion de variables
begin
 List.Clear;  // Limpio la lista
 Handle := FindFirstFile(PChar(Path + '\*.*'), FindData); // Inicias el listado
 repeat
  if (FindData.cFileName <> '.') and (cFileName <> '..') then // Si el nombre encontrado no es '.' ni '..'
   List.Add(FindData.cFileName);                                         // Lo añado en la lista
 until not FindNextFile(Handle, FindData);        // repito hasta que la API FindNextFile me diga que ya no hay archivos
 FindClose(Handle);  // y cierro la busqueda
end;

Lo anterior crea la lista... lo otro no es muy diferente:

Código Delphi [-]
begin
 Handle := FindFirstFile(PChar(Path + '\*.*'), FindData); // Inicias el listado
 repeat
  if (FindData.cFileName <> '.') and (cFileName <> '..') then // Si el nombre encontrado no es '.' ni '..'
   begin
    Index := List.IndexOf(FindData.cFileName);  // a la variable Index le asigno la posicion en mi lista
    if Index <> -1 then // cuando NO es -1, significa que existe en la lista, entonces
     List.Delete(Index)  // lo borro
    else   // caso contrario
     List.Add(FindData.cFileName); // Lo agrego
   end;
 until not FindNextFile(Handle, FindData);
 FindClose(Handle);
end;

Lo que hice es borrar los que ya existian, y añadir los nuevos... me quedan todos los cambios en la estructura del directorio que queremos ver.

Espero sea mas iluminador en este post, ademas las APIs se repiten y es muy parecido con el Delphi...

PD: Me gustaria que lo pruebes al Delphi!

Suerte
Responder Con Cita
 


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
al detectar unidad q no se muestre ventana de abrir carpeta kapullok_2006 API de Windows 3 04-05-2007 00:33:56
Capturar ruta de acceso a la carpeta mis documentos y a la carpeta activa. Pepe Torres API de Windows 1 23-02-2007 23:02:21
Nueva PC vtdeleon Noticias 2 10-12-2005 01:44:41
Creacion de una carpeta manera remota noir Conexión con bases de datos 2 01-06-2005 23:29:34
Como detectar la URL de una "página nueva" Delphius Internet 6 10-08-2004 20:44:22


La franja horaria es GMT +2. Ahora son las 12:03:52.


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