HB_ZIPFILE

HB_ZIPFILE

Postby Manuel Valdenebro » Fri Apr 18, 2008 9:16 pm

Hasta ahora, vengo utilizando la aplicación Easy-Backup en mis aplicaciones satisfactoriamente. Pero como el programa es muy pesado, he empezado a probar la función de xHarbour HB_ZIPFILE.
Utilizo un array para incluir los ficheros que necesito pero observo que no incluye en el fichero ZIP de destino, las tablas que tiene abiertas la aplicación en ese momento. Logicamente, si cierro las tablas no hay ningún problema, pero ¿alguien conoce algún método que evite este cierre previo?.
Un saludo

Manuel
User avatar
Manuel Valdenebro
 
Posts: 706
Joined: Thu Oct 06, 2005 9:57 pm
Location: Málaga-España

Postby sysctrl2 » Fri Apr 18, 2008 9:25 pm

Manuel,

yo lo que hago , es copiar a una carpeta tmp,

en caso de que el archivo esta abierto..

y los que empaco son los que estan en la carpeta de tmp.




saludos..
Cesar Cortes Cruz
SysCtrl Software
Mexico

' Sin +- FWH es mejor "
User avatar
sysctrl2
 
Posts: 1027
Joined: Mon Feb 05, 2007 7:15 pm

Postby Manuel Valdenebro » Sat Apr 19, 2008 4:53 am

sysctrl2 wrote:yo lo que hago , es copiar a una carpeta tmp,


César,

¿Como realizas la copia, porque COPY FILE tampoco copia los ficheros abiertos?

Muchas gracias
Un saludo

Manuel
User avatar
Manuel Valdenebro
 
Posts: 706
Joined: Thu Oct 06, 2005 9:57 pm
Location: Málaga-España

Postby rogerio » Sat Apr 19, 2008 12:11 pm

Manuel

utilizo

CopyFile()

que funciona bem com os arquivos abertos.

Ex.:
CopyFile( "C:\CP300\TABCAT.DBF", aonde+"\"+"TABCAT.DBF", .f. )

aonde = diretorio destino


//-----------------------

DLL32 FUNCTION CopyFile( cExFile AS LPSTR, ;
cNewFile AS LPSTR, ;
lFailIfEx AS LONG ) ;
AS BOOL FROM "CopyFileA" LIB "Kernel32.dll"
//------------------------------

[]'s

Rogerio
User avatar
rogerio
 
Posts: 84
Joined: Wed Nov 09, 2005 11:22 pm
Location: São Lourenço da Serra - SP - Brasil

Postby Manuel Valdenebro » Sat Apr 19, 2008 3:20 pm

Rogerio,

Gracias por contestar, pero no funciona. Lo he intentado con el siguiente código, pero solo copia los ficheros no abiertos. Si antepongo DBCLOSEALL(), entonces todo correcto:


lMkdir ("temp")
adir := DIRECTORY ( "*.dbf" )

FOR aFile=1 TO LEN (aDir)
AADD(aOrigen, aDir [aFile,1] )
copyfile( aDir[aFile,1], ("temp\" + aDir[aFile,1] ), .f. )
NEXT

// añade al array los ficheros *.fpt
adir := DIRECTORY ( "*.fpt" )

FOR aFile=1 TO LEN (aDir)
AADD(aOrigen, aDir [aFile,1] )
copyfile( aDir[aFile,1], ("temp\" + aDir[aFile,1] ), .f. )
NEXT
RETURN nil


DLL32 FUNCTION CopyFile( cExFile AS LPSTR, cNewFile AS LPSTR, ;
lFailIfEx AS LONG );
AS BOOL PASCAL FROM "CopyFileA" LIB "Kernel32.dll"

Un saludo

Manuel
User avatar
Manuel Valdenebro
 
Posts: 706
Joined: Thu Oct 06, 2005 9:57 pm
Location: Málaga-España

Postby rogerio » Sat Apr 19, 2008 7:45 pm

Manuel

a mim funciona perfeitamente.
Foi criado um programa para back-up automático que copia os arquivos .dbf para um drive externo.
Os arquivos .dbf podem estar abertos em vários terminais sem problemas, no entanto eles são abertos em modo compartilhado - shared.
Não testei com os arquivos abertos em modo exclusivo. Veja se não é esse o caso.

[]'s

Rogerio
User avatar
rogerio
 
Posts: 84
Joined: Wed Nov 09, 2005 11:22 pm
Location: São Lourenço da Serra - SP - Brasil

Postby Manuel Valdenebro » Sun Apr 20, 2008 9:22 pm

Rogerio,

Llevas toda la razón. Ahora funciona.

Habia olvidado poner al principio del programa SET EXCLUSIVE OFF.

Muito obrigado.
Un saludo

Manuel
User avatar
Manuel Valdenebro
 
Posts: 706
Joined: Thu Oct 06, 2005 9:57 pm
Location: Málaga-España


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 63 guests