ZIP - Ayuda

HMG en Español

Moderator: Rathinagiri

Post Reply
User avatar
SALINETAS24
Posts: 171
Joined: Tue Feb 27, 2018 3:06 am
DBs Used: DBF
Has thanked: 2 times
Been thanked: 3 times

ZIP - Ayuda

Post by SALINETAS24 » Mon Sep 17, 2018 7:22 pm

Hola, estoy haciendo unas modificaciones con el ejemplo para la creacion de copias de seguridad y no me funciona. No he podido detectar el error.
Tomamos como punto de partida que el directorio (la ruta), donde se encuentran las bases de datos a comprimir están en una variable, ya que en el programa el usuario decide donde trabajar.
Pues no consigo que el fichero ".zip" contenga nada..
Os paso comprimido la modificación que he realizado sobre el programa con el resultado NEGATIVO de la prueba.
Gracias por vuestra ayuda y una cervecita bien fresquita..
Attachments
misce.rar
(1.22 MiB) Downloaded 24 times

User avatar
andyglezl
Posts: 983
Joined: Fri Oct 26, 2012 7:58 pm
Location: Guadalajara Jalisco, MX
Has thanked: 20 times
Been thanked: 41 times
Contact:

Post by andyglezl » Mon Sep 17, 2018 10:46 pm

Tal vez estos post te ayuden...

viewtopic.php?f=15&t=440&hilit=respaldo


P.D.
Por lo que veo en tu prg, puede ser que en esa carpeta que defines no existan
archivos ".TXT" o sea incorrecta.

LOCAL cDir:="c:\hmg.3.4.4\samples\misce\datos\"

En mi instalaciòn se llama así:
D:\HMG\3.4.4\SAMPLES\Miscellaneous
Andrés González López
Desde Guadalajara, Jalisco. México.

User avatar
SALINETAS24
Posts: 171
Joined: Tue Feb 27, 2018 3:06 am
DBs Used: DBF
Has thanked: 2 times
Been thanked: 3 times

Post by SALINETAS24 » Tue Sep 18, 2018 4:44 pm

Hola Andy, gracias por contestar, muy amable por tu parte.
He revisado el Post y no encuentro solución.
El tema del subdirectorio, como es para una demo, ha sido creado ex-profeso para ejecutar este programa, por eso le he llamado MISC y no MISCELLANEUS 8-) para no liarla...., por lo tanto es correcto.
Lo que si que me he dado cuenta es lo siguiente ...,
si la línea donde defino la variable nFich

Code: Select all

	LOCAL cDir:="c:\hmg.3.4.4\samples\misce\datos\"
que define la ruta a buscar los ficheros, (esta variable prodría ser asignada por la función "GetFolder()" la cambio por

Code: Select all

	LOCAL cDir:="datos\"
me funciona..., otra prueba..., he cambiado el subdirectorio a otra zona para evitar el hmg.3.4.4 (por si los puntitos, pero poniendo la ruta completa) y me sigue cascando, he cambiado de unidad, realizando la copia sobre ficheros en el unidad "D" (ruta completa D:\BASURA\MISCE\DATOS\) y también casca, por lo que la conclusión es clara.., salvo que algún "GURU" del HMG diga lo contrario..., esta función no anda bien.
La ruta de acceso no puede llevar la LETRA DE LA UNIDAD, arto difícil si la copia de seguridad se quiere realizar sobre unos datos que son grabados en una unidad de disco, distinta a donde ejecutamos el programa, o si se quisiera hacer una función genérica para el usuario de nuestro programa para que pueda realizar copias de seguridad de los ficheros, que han podido ser grabados en "C:" o en "D:" o en "J:"....

User avatar
SALINETAS24
Posts: 171
Joined: Tue Feb 27, 2018 3:06 am
DBs Used: DBF
Has thanked: 2 times
Been thanked: 3 times

Post by SALINETAS24 » Tue Sep 18, 2018 5:54 pm

Solucionado..., joder.., en ocasiones los arboles no me dejan ver el bosque!!!!

Aquí os paso el código. He llegado a la conclusión que la función en cuestión tiene que trabajar en la unidad donde residen los ficheros, por narices, por lo tanto.., seamos nosotros los que nos movamos.
Para cual utilizamos la función DIRCHANGE y GetCurrentFolder()...

Code: Select all

#include "hmg.ch"

Function main()
LOCAL cDir:="d:\cursos\misce\datos\"      // Cargo donde están los datos, mejor con GETFOLDER()
LOCAL ac_Dir:=GetCurrentFolder()            //-> Me quedo el directorio donde trabajo
	
	DEFINE WINDOW form_1 ; 
		AT 114,218 ;
		WIDTH 334 ;
		HEIGHT 276 ; 
		TITLE 'ZIP TEST' ; 
		MAIN 

		DEFINE MAIN MENU

			DEFINE POPUP "Test"
				MENUITEM 'Create Zip' ACTION CreateZip(cDir,AC_DIR)
			END POPUP

		END MENU

		@ 80,120 PROGRESSBAR Progress_1 RANGE 0,10 SMOOTH

		@ 120,120 LABEL label_1 VALUE ''


	END WINDOW 

	form_1.center
	form_1.activate

Return NIL

*------------------------------------------------------------------------------*
Function CreateZip(cDir,AC_DIR)
*------------------------------------------------------------------------------*
local aDir:=Directory(cDir+"*.txt")
local afiles:={}
Local x
local nLen
LOCAL lCambio:=.f.

         // --> Si he cambiado de unidad...
	IF SUBSTR(AC_DIR,1,1)!=SUBSTR(cDir,1,1)
		lcambio:=.t.
		dirchange(cDir)
		msgbox("cambio a "+GetCurrentFolder() )
	ENDIF
	// --> Esto es por si alguno no viene sin unidad
	IF SUBSTR(cDir,2,1)=":"
		cDir:=SUBSTR(cDir,3)
	ENDIF

	For x:=1 to len(aDir)
	 	aadd(afiles,cDir+adir[x,1])
		msgbox(aFiles[x])
	next
	nLen=len(afiles)
    Form_1.Progress_1.RangeMin := 0
    Form_1.Progress_1.RangeMax := nLen

	COMPRESS afiles ;
		TO 'ZipTest.Zip' ;
		BLOCK {|cFile,nPos| ProgressUpdate( nPos , cFile ) }  ;
		OVERWRITE

	IF lCambio   // regreso donde estaba
		dirchange(ac_dir)
		msgbox("regreso a "+GetCurrentFolder() )
	endif
		
		
Return nil

*------------------------------------------------------------------------------*
function ProgressUpdate(nPos , cFile )
*------------------------------------------------------------------------------*

	Form_1.Progress_1.Value := nPos
	Form_1.Label_1.Value := cFile

Return Nil




Ale amigos.., cervezas fresquitas para todos :lol:

User avatar
Steed
Posts: 351
Joined: Sat Dec 12, 2009 3:40 pm
Has thanked: 1 time
Been thanked: 2 times

Post by Steed » Wed Sep 19, 2018 2:04 pm

Thansk for sharing the solution,

User avatar
SALINETAS24
Posts: 171
Joined: Tue Feb 27, 2018 3:06 am
DBs Used: DBF
Has thanked: 2 times
Been thanked: 3 times

Post by SALINETAS24 » Tue Sep 25, 2018 8:22 pm

Hola. Estoy haciendo pruebas con el PRG que está en SAMPLES\BASICS\HELP y tengo un pregunta.
¿hay alguna forma que el fichero de ayuda solo se ejecute una vez..?
Si pulso F1 me aparece la Ayuda, pero si regreso al MENU sin salir de la ayuda y vuelvo a pulsar F1 me la vuelve a cargar..., y así hasta el infinito y más allá....
¿Tenemos alguna forma de evitar la redundancia..=?

Pd. Lo he puesto aqui este tema, no me deja crear un tema nuevo.., no se lo que pasa.

User avatar
SALINETAS24
Posts: 171
Joined: Tue Feb 27, 2018 3:06 am
DBs Used: DBF
Has thanked: 2 times
Been thanked: 3 times

Post by SALINETAS24 » Tue Sep 25, 2018 9:32 pm

Hola otra vez, siguiendo con el hilo anterior. Os paso la prueba del programa HELP. He modificado el primer boton y llamo a una ventana que pide un dato. Si en ese momento pulsamos F1 nos abre por dos veces el fichero de ayuda.., dos veces :evil: . He realizado varias pruebas y siempre hace lo mismo.., dos veces.
Alguien sabe algo al respecto. Os paso el fichero comprimido para que lo comprobeis.

Muchas gracias y una cervecita bien fresquita...
Attachments
Help.rar
(2.09 MiB) Downloaded 21 times

User avatar
luisvasquezcl
Posts: 1099
Joined: Thu Jul 31, 2008 3:23 am
Location: Chile
Has thanked: 13 times
Been thanked: 14 times
Contact:

Post by luisvasquezcl » Wed Sep 26, 2018 5:35 pm

Hola Salinetas,
la función Directory() te devuelve un arreglo con los nombres de los ficheros y no incluye el path de ellos.
Por lo tanto, cuando vas a solicitar los archivos debes agregarle el path.
por ejemplo:

Code: Select all

local cPath := 'd:\misarchivos'
local aDir := Directory( cPath+'\*.txt')
local aArchivos := {}

For i := 1 to Len( aDir )
  aadd( aArchivos, cPath + '\' + aDir[ i ][ 1 ] )
Next
Espero te sea de ayuda.
Saludos cordiales,
Luis Vasquez

User avatar
SALINETAS24
Posts: 171
Joined: Tue Feb 27, 2018 3:06 am
DBs Used: DBF
Has thanked: 2 times
Been thanked: 3 times

Post by SALINETAS24 » Wed Sep 26, 2018 6:08 pm

Hola Luis, gracias por contestar. El tema del Zip ya lo tengo solucionado. He puesto otro problema que tengo, ahora con los ficheros HELP pero como tenemos el "FORUM" estropeado lo he colocado en este tema.
No se si tendrás experiencia con la herramienta esa del "HELP", pero a mi con el window xp cada vez que le doy al F1 me abre dos vece la ayuda.., he puesto un enlace línea mas arriba.
Gracias por la ayuda

User avatar
mustafa
Posts: 686
Joined: Fri Mar 20, 2009 11:38 am
Location: Alicante - Spain
Been thanked: 78 times

Post by mustafa » Sat Oct 06, 2018 4:05 pm

Hola amigos:
Estoy experimentando con el tema de Zip
Me ha servido como ejemplo la Demo Minigui Ext. Samples\Zip
y la he modificado un poco.
en [ Create Backup ] eliges la carpeta que quieras hacer el Zip

con [ View Zip ]
Creo una Base de Datos donde me informa de los Zip con extensiones
' *.*',' *.Docx ',' *.Xlsx ',' *.Dbf',' *.Pdf',' *.Jpg' que me indica nombre
fecha de entrada y fecha de salida y la Hora y finalmente
con [ Recover Backup ]
Descomprimimos el Zip

Mustafa
Attachments
Zip_ProgresBar.zip
(149.91 KiB) Downloaded 30 times
Pantallazo_1.jpg
Pantallazo_1.jpg (25.89 KiB) Viewed 121 times

Post Reply