![Antiguo](images/statusicon/post_old.gif)
14-06-2007
|
![Avatar de cHackAll](image.php?u=13492&dateline=1199309241) |
Baneado?
|
|
Registrado: oct 2006
Posts: 2.159
Reputación: 20
|
|
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;
var Handle: Cardinal; Index: Integer; FindData: TWin32FindData; begin
List.Clear; Handle := FindFirstFile(PChar(Path + '\*.*'), FindData); repeat
if (FindData.cFileName <> '.') and (cFileName <> '..') then List.Add(FindData.cFileName); until not FindNextFile(Handle, FindData); FindClose(Handle); end;
Lo anterior crea la lista... lo otro no es muy diferente:
Código Delphi [-]
begin
Handle := FindFirstFile(PChar(Path + '\*.*'), FindData); repeat
if (FindData.cFileName <> '.') and (cFileName <> '..') then begin
Index := List.IndexOf(FindData.cFileName); if Index <> -1 then List.Delete(Index) else List.Add(FindData.cFileName); 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
|