Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 3
Ir a la página 1, 2, 3  Siguiente
 
Saber Si Un Archivo Esta Abierto
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Saber Si Un Archivo Esta Abierto 
 
Hola, he estado trabajando con una clase que genera un archivo pdf, y luego el programa abre y muestra ese pdf.
El inconveniente con el que me tope es que cada pdf sera diferente y por lo tanto la clase que lo genera tardara a veces mas a veces menos, así que en el programa uso wait para definir un tiempo de espera prudencial antes de abrir el pdf para visualizarlo, y me gustaría que el tiempo de espera "wait" sea el menor posible, pero si configuro uno muy pequeño, cuando la generación del pdf tarde mucho se producira un error y si configuro un tiempo muy grande el programa parecerá lento.

Bueno, he usado Exist para ver si el fichero existe, pero esto no me sirve del todo porque este existe pero esta siendo modificado por la clase que genera el archivo.
así que si lo abro dará error.
Así que use Stat(/ruta/archivo.pdf).Size

Esta es la rudimentaria solución que encontré
   w = 0
  strPathPDF = "/rutacompleta/archivo.pdf"
  Repeat
          If Not Exist(strPathPDF) Then
            Wait 0.1
            Else
            strStatSize1 = Stat(strPathPDF).Size
            Wait 0.3 ' Espera de 0.3 segundos antes de tomar la segunda medición.
            strStatSize2 = Stat(strPathPDF).Size
                    If strStatSize1 = strStatSize2 Then ' Si las dos mediciones son iguales se puede inferir que el archivo ya fue generado.
                      strCompiled = "ok"
                    Endif
               Print Str(w) & " Tamaño instate 1: " & strStatSize1 & "  Tamaño instate 2: " & strStatSize2
               Inc w
         Endif
  Until strCompiled = "ok" ' Or w = 120 ' Por si algo falla le di un tiempo de finalización 120 * 0.3
  Shell "atril " & strPathPDF
 


¿Existe una forma mejor de averiguar si el archivo ya se termino de generar?

Saludos.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Saber Si Un Archivo Esta Abierto 
 
Sí. Añade a tu programa el modulo gb.inotify y utiliza la clase watch. Es precisamente para lo que quieres.

Se levanta un "vigilante" (observador ya estaba pillado) sobre el fichero y éste vigilante levanta un evento cada vez que el fichero es escrito, accedido, leído, cerrado, creado, etc. etc.

Yo lo uso y mola.

   
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Saber Si Un Archivo Esta Abierto 
 
shordi escribió: [Ver mensaje]
Sí. Añade a tu programa el modulo gb.inotify y utiliza la clase watch.

Gracias crack. lo voy a probar a ver que tal va.

Saludos.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Saber Si Un Archivo Esta Abierto 
 
shordi escribió: [Ver mensaje]
Sí. Añade a tu programa el modulo gb.inotify y utiliza la clase watch. Es precisamente para lo que quieres.

Se levanta un "vigilante" (observador ya estaba pillado) sobre el fichero y éste vigilante levanta un evento cada vez que el fichero es escrito, accedido, leído, cerrado, creado, etc. etc.

Yo lo uso y mola.

   


Qué "mákina", shordi  

No le había prestado suficiente atención a esa clase. Parece extremadamente útil.

Saludos
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Saber Si Un Archivo Esta Abierto 
 
Es obra de Tobi, el ínclito alemán de 20 años "que usa gambas por diversión". Cuánto talento hay por ahí... y qué viejo soy...
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Saber Si Un Archivo Esta Abierto 
 
Lo sé, lo sé... Y también lo de Tobi y su componente gb.inotify  


Saludos
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Saber Si Un Archivo Esta Abierto 
 
tincho escribió: [Ver mensaje]
....trabajando con una clase que genera un archivo pdf

Hola tincho, querría saber cual es esta Clase y el su metodo que usaste para generar el file PDF.
 



 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Saber Si Un Archivo Esta Abierto 
 
vuott escribió: [Ver mensaje]
Hola tincho, querría saber cual es esta Clase y el su metodo que usaste para generar el file PDF.

Es la clase classLaTeX de Julio. y los metodos que use son ResultadoConsultaDB, inicioPagina, finPagina, HojaApaisadaInicio, HojaApaisadaFin, compila etc. etc.
En el ejemplo de Julio y su video esta magistralmente explicado.

Julio:
Echale un ojo al adjunto a ver si te interesa incorporar los de los encabezados. La verdad me parece super interesante esta clase y de momento estoy comenzando a entender como usarla, pero le veo un futuro prometedor.

Saludos.

ClassLaTex.class.zip
Descripción: ClassLaTeX con unas minimas modificaciones para manejar el visor de pdf en multiples ecritorios y los encabezados de las columnas. 
Descargar
Nombre del archivo: ClassLaTex.class.zip
Tamaño: 4.46 KB
Descargado: 29 veces
ClassLaTex.class.zip
Descripción: ClassLaTeX con unas minimas modificaciones para manejar el visor de pdf en multiples ecritorios y los encabezados de las columnas. 
Descargar
Nombre del archivo: ClassLaTex.class.zip
Tamaño: 4.46 KB
Descargado: 29 veces
ClassLaTex.class.zip
Descripción: ClassLaTeX con unas minimas modificaciones para manejar el visor de pdf en multiples ecritorios y los encabezados de las columnas. 
Descargar
Nombre del archivo: ClassLaTex.class.zip
Tamaño: 4.46 KB
Descargado: 29 veces

 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Saber Si Un Archivo Esta Abierto 
 
tincho, mira que si la version del archivo PDF
 
version = Mid(File.Load("/ruta/del/archivo.pdf"), 6, 3)

  < 1.3, el archivo termina con estos valores byte: 45 4F 46 0D 0A

  = > 1.3, el archivo termina con estos valores byte: 45 4F 46 0A

       ....... whistling




Y otra manera, si se pudiera interrogar el file-descriptor del archivo pdf...........    








.
 



 
última edición por vuott el Jueves, 10 Marzo 2016, 01:52; editado 3 veces 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Saber Si Un Archivo Esta Abierto 
 
shordi escribió: [Ver mensaje]
Sí. Añade a tu programa el modulo gb.inotify y utiliza la clase watch

Shordi:
He intentado usar este componente pero no doy pie con bola. sigo con la opción inicial que ya funciona bien. pero por curuisidad me gustaria ver algun ejemplo practico de ese componente si es que tienes algo por ahí.

Saludos.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes ¿Como Saber Si Un Programa Esta Instalado... Enchufadoo General 3 Sabado, 11 Junio 2011, 15:09 Ver último mensaje
Enchufadoo
No hay nuevos mensajes Como Deshabilitar Un Formulario Mientras E... jousseph Controles/Librerías/Componentes 2 Jueves, 10 Octobre 2013, 18:53 Ver último mensaje
jousseph
No hay nuevos mensajes Saber Si Se Esta Ejecutando Desde El IDE [... tincho Aplicaciones/Fragmentos de Código 7 Viernes, 16 Diciembre 2016, 00:17 Ver último mensaje
tincho
No hay nuevos mensajes ¿Es Posible Saber Donde Esta El Foco? gambafeliz General 7 Jueves, 21 Noviembre 2019, 18:18 Ver último mensaje
tincho
 

Publicar nuevo tema  Responder al tema  Página 1 de 3
Ir a la página 1, 2, 3  Siguiente

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron