Saber Si Un Archivo Esta Abierto
Objetivo: Re: Saber Si Un Archivo Esta Abierto
...o saber si un archivo de ruta y nombre conocidos es modificado o destruído:
vuott escribió: [Ver mensaje]
...o saber si un archivo de ruta y nombre conocidos es modificado o destruído:
Private tempus As Timer
Private dr As String
Private lun As String
Public Sub Main()
dr = "/ruta/del/file"
lun = File.Load(dr)
With tempus = New Timer As "Tempus"
.Delay = 250
.Start
End With
End
Public Sub Tempus_Timer()
Dim s As String
If Exist(dr) Then
s = File.Load(dr)
If lun <> s Then Print "Alguien está modificando el archivo: "; dr
lun = s
Else
Print "\nEl archivo '"; dr; "' ha sido destruído !"
tempus.Stop
Endif
End
Private dr As String
Private lun As String
Public Sub Main()
dr = "/ruta/del/file"
lun = File.Load(dr)
With tempus = New Timer As "Tempus"
.Delay = 250
.Start
End With
End
Public Sub Tempus_Timer()
Dim s As String
If Exist(dr) Then
s = File.Load(dr)
If lun <> s Then Print "Alguien está modificando el archivo: "; dr
lun = s
Else
Print "\nEl archivo '"; dr; "' ha sido destruído !"
tempus.Stop
Endif
End
Objetivo: Re: Saber Si Un Archivo Esta Abierto
El tema con los watch es que operan fuera del ciclo de eventos, al parecer, con lo cual funcionaría, supongo, incluso fuera del form donde se declaran y lanzan... es algo que tengo que probar.
Saludos.
Saludos.
Objetivo: Re: Saber Si Un Archivo Esta Abierto
No llego a comprender.
Cuando escribimos:
no ponemos un evento ?
Y el Componente gb.inotify no tiene sus Eventos ?
http://gambaswiki.org/wiki/comp/gb.inotify/watch?nh
No comprendo lo que quieres decir.
última edición por vuott el Lunes, 14 Marzo 2016, 13:06; editado 2 veces
shordi escribió: [Ver mensaje]
No llego a comprender.
Cuando escribimos:
no ponemos un evento ?
Y el Componente gb.inotify no tiene sus Eventos ?
http://gambaswiki.org/wiki/comp/gb.inotify/watch?nh
No comprendo lo que quieres decir.
última edición por vuott el Lunes, 14 Marzo 2016, 13:06; editado 2 veces
Objetivo: Re: Saber Si Un Archivo Esta Abierto
Es que no sé muy bien lo que digo Pero como dije antes y creí que era un bug, el watch no se destruye y el proyecto no finaliza cuando cierras el fomulario principal, queda funcionando hasta que usas QUIT. Eso indica que sigue observando el fichero después de haber cerrado el form, lo que "puede" indicar que siga funcionando "por encima" de los fomularios, de manera que funcione aunque cierres el formulario que lo crea...
Todo muy nebuloso y confuso. Tengo que probarlo y ya te cuento.
Saludos.
Todo muy nebuloso y confuso. Tengo que probarlo y ya te cuento.
Saludos.
Objetivo: Re: Saber Si Un Archivo Esta Abierto
...también añadiría esta página que he escrito en el WIKI del foro italiano:
http://www.gambas-it.org/wiki/index...tate_ad_un_file
http://www.gambas-it.org/wiki/index...tate_ad_un_file
Objetivo: Re: Saber Si Un Archivo Esta Abierto
última edición por alberto_moyano el Sabado, 13 Agosto 2016, 01:42; editado 1 vez
Tincho, te hago algunos comentarios sobre la clase de LaTeX que subiste (el trabajo de Julio es fabuloso)
textocadena &= "\\usepackage[dvips,dvipsnames,usenames]{color}" & gb.CrLf
deberias dejarla así
textocadena &= "\\usepackage[usenames]{color}" & gb.CrLf
ya que estás compilando con el driver de pdftex, y las opciones de color dvips y dvips son para el caso en que compiles con LaTeX y obtengas un DVI y luego lo conviertas a pdf con dvi2pdf, así es como se hacia antiguamente hasta que apareció pdftex (el viejo método se sigue usando si utilizas gráficos eps)
textocadena &= "\\usepackage[utf8]{inputenc} % Escribir con acentos, ñ, ..." & gb.CrLf
debes dejarla así
textocadena &= "\\usepackage[spanish,es-ucroman]{babel}" & gb.CrLf
textocadena &= "\\usepackage[utf8]{inputenc}" & gb.CrLf
textocadena &= "\\usepackage[T1]{fontenc}" & gb.CrLf
ya que solo le dices que tipo de entrada tienes pero te está faltando decirle la codificación de tus fuentes tipográficas y el idioma que usas por defecto, si en el futuro quisieras hacer informes en otro idioma que no use los caracteres arábigos, además si quisieras extender Unicode dentro de tus opciones puedes utf8x y por supuesto sumarle los diccionarios en babel
textocadena &= "\\usepackage[utf8x]{inputenc} % Escribir con acentos, ñ, ..." & gb.CrLf
Sobre los gráficos
textocadena &= "\\DeclareGraphicsExtensions {.pdf,.png,.jpg}" & gb.CrLf 'graficos que se admiten
si vas a compilar con pdftex, esta linea está de más, el driver identifica automáticamente las extensiones de las imágenes.
La línea del retorno de carro
Public Sub CrLf() As String '' Retorno del carro (fin de la linea)
Return Me.texto("", True)
End
puede quedar así que es más práctica
Public Sub CrLf() As String '' Retorno del carro (fin de la linea)
Return Me.texto("\\par", True)
End
Sobre esta línea
Public Sub AmbienteVerbatimInicio() As String ''especialmente para usar para escribir codigo
Dim textocadena As String
textocadena = "\\begin{verbatim}" & gb.CrLf
contenido &= textocadena
Return textocadena
End
verbatim es para escribir con tipografía monoespaciada (como las viejas máquinas de escribir), si necesitas escribir código de algún lenguaje, se usa el paquete Listing (https://www.ctan.org/pkg/listings), fue diseñado especialmente para eso, hace dentro del pdf lo mismo que dentro de esta web hace la opción de escribir código, es decir tabulados, colores, etc.
Cuando trabajas con columnas de cuadros, ya sea porque son cuadros simples o desde una base de datos, además de
formato &= "|p{" & strWidth & "mm}"
debes tener la opción
formato &= "|m{" & strWidth & "mm}"
la diferencia entre p y m, es que esta última justifica el texto del párrafo, esto es muy útil cuando haces informes con párrafos con mucho texto y necesitas que guionice el corte de palabra.
Usar este paquete
textocadena &= "\\usepackage{lscape}" & gb.CrLf
usando el paquete geometry (que lo cargaste antes) es un sinsentido, puedes girar la página desde geometry.
Respecto de las cabeceras, veo que estás usando fancyheader, para hacer informes es como matar mosquitos con un magnun 44, el paquete titlesec de Javier Bezos es casi igual de potente y muchísimo más fácil de implementar
Hay muchos más cambios que se pueden hacer pero en realidad están vinculados al tipo de informe y/o reporte que quieras obtener, hacer una clase quilometrica de código para usar solo unas lineas no tiene mucho sentido, creo que es mejor hacer cambios sobre la clase base.
Por último si quieres saber que tipografías vienen instaladas por default en texlive puedes visitar la página del foro alemán, es la que mejor lo muestra, pero no están todas hay muchas más (http://www.tug.dk/FontCatalogue/).
Te dejo un adjunto para que veas algunas cosas que se pueden hacer, es el presupuesto que hace mi sistema, hecho con gambas
Saludos
textocadena &= "\\usepackage[dvips,dvipsnames,usenames]{color}" & gb.CrLf
deberias dejarla así
textocadena &= "\\usepackage[usenames]{color}" & gb.CrLf
ya que estás compilando con el driver de pdftex, y las opciones de color dvips y dvips son para el caso en que compiles con LaTeX y obtengas un DVI y luego lo conviertas a pdf con dvi2pdf, así es como se hacia antiguamente hasta que apareció pdftex (el viejo método se sigue usando si utilizas gráficos eps)
textocadena &= "\\usepackage[utf8]{inputenc} % Escribir con acentos, ñ, ..." & gb.CrLf
debes dejarla así
textocadena &= "\\usepackage[spanish,es-ucroman]{babel}" & gb.CrLf
textocadena &= "\\usepackage[utf8]{inputenc}" & gb.CrLf
textocadena &= "\\usepackage[T1]{fontenc}" & gb.CrLf
ya que solo le dices que tipo de entrada tienes pero te está faltando decirle la codificación de tus fuentes tipográficas y el idioma que usas por defecto, si en el futuro quisieras hacer informes en otro idioma que no use los caracteres arábigos, además si quisieras extender Unicode dentro de tus opciones puedes utf8x y por supuesto sumarle los diccionarios en babel
textocadena &= "\\usepackage[utf8x]{inputenc} % Escribir con acentos, ñ, ..." & gb.CrLf
Sobre los gráficos
textocadena &= "\\DeclareGraphicsExtensions {.pdf,.png,.jpg}" & gb.CrLf 'graficos que se admiten
si vas a compilar con pdftex, esta linea está de más, el driver identifica automáticamente las extensiones de las imágenes.
La línea del retorno de carro
Public Sub CrLf() As String '' Retorno del carro (fin de la linea)
Return Me.texto("", True)
End
puede quedar así que es más práctica
Public Sub CrLf() As String '' Retorno del carro (fin de la linea)
Return Me.texto("\\par", True)
End
Sobre esta línea
Public Sub AmbienteVerbatimInicio() As String ''especialmente para usar para escribir codigo
Dim textocadena As String
textocadena = "\\begin{verbatim}" & gb.CrLf
contenido &= textocadena
Return textocadena
End
verbatim es para escribir con tipografía monoespaciada (como las viejas máquinas de escribir), si necesitas escribir código de algún lenguaje, se usa el paquete Listing (https://www.ctan.org/pkg/listings), fue diseñado especialmente para eso, hace dentro del pdf lo mismo que dentro de esta web hace la opción de escribir código, es decir tabulados, colores, etc.
Cuando trabajas con columnas de cuadros, ya sea porque son cuadros simples o desde una base de datos, además de
formato &= "|p{" & strWidth & "mm}"
debes tener la opción
formato &= "|m{" & strWidth & "mm}"
la diferencia entre p y m, es que esta última justifica el texto del párrafo, esto es muy útil cuando haces informes con párrafos con mucho texto y necesitas que guionice el corte de palabra.
Usar este paquete
textocadena &= "\\usepackage{lscape}" & gb.CrLf
usando el paquete geometry (que lo cargaste antes) es un sinsentido, puedes girar la página desde geometry.
Respecto de las cabeceras, veo que estás usando fancyheader, para hacer informes es como matar mosquitos con un magnun 44, el paquete titlesec de Javier Bezos es casi igual de potente y muchísimo más fácil de implementar
Hay muchos más cambios que se pueden hacer pero en realidad están vinculados al tipo de informe y/o reporte que quieras obtener, hacer una clase quilometrica de código para usar solo unas lineas no tiene mucho sentido, creo que es mejor hacer cambios sobre la clase base.
Por último si quieres saber que tipografías vienen instaladas por default en texlive puedes visitar la página del foro alemán, es la que mejor lo muestra, pero no están todas hay muchas más (http://www.tug.dk/FontCatalogue/).
Te dejo un adjunto para que veas algunas cosas que se pueden hacer, es el presupuesto que hace mi sistema, hecho con gambas
Saludos
última edición por alberto_moyano el Sabado, 13 Agosto 2016, 01:42; editado 1 vez
Ruffini-06.pdf | ||
Descripción: | Descargar |
|
Nombre del archivo: | Ruffini-06.pdf | |
Tamaño: | 111.76 KB | |
Descargado: | 21 veces |
Ruffini-06.pdf | ||
Descripción: | Descargar |
|
Nombre del archivo: | Ruffini-06.pdf | |
Tamaño: | 111.76 KB | |
Descargado: | 21 veces |
Ruffini-06.pdf | ||
Descripción: | Descargar |
|
Nombre del archivo: | Ruffini-06.pdf | |
Tamaño: | 111.76 KB | |
Descargado: | 21 veces |
Objetivo: Re: Saber Si Un Archivo Esta Abierto
Mmmm... Alberto, quizá una entrada tan extensa trabajada e interesante, con ejemplo incluido, mereciese un hilo aparte hablando de Latex en sí mismo, más que una respuesta en la página tres de un hilo sobre archivos abiertos...
Es sólo una sugerencia...
Saludos.
Es sólo una sugerencia...
Saludos.
Página 3 de 3
No puede crear mensajesNo 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
Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.
Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo
Página generada en:: 0.4335s (PHP: -79% SQL: 179%)
Consultas SQL: 48 - Debug off - GZIP Activado