Mensajes: 74
Temas: 23
Gracias Recibidas: 14 en 8 posts
Gracias Dadas: 36
Registro en: Sep 2020
07-09-2022, 02:19
(Última modificación: 07-09-2022, 02:21 por
alberto-moyano.)
Justo en otro hilo Tincho aporto una solución a una cuestión en la que justamente estoy aprendiendo, mi diferencia está en que yo necesito saber si la versión copiada anteriormente es la misma que tengo en la aplicación, el código que uso es este, se que los if los podría anidar pero por ahora lo dejo así para aclarar mis ideas.
Que piensan que es mejor, directamente borrar la versión en el disco y copiar la nueva sin comparar al iniciar la aplicación o desarrollar un algoritmo que haga la comparación, (ergo que vale más, eficaz o eficiente).
El punto es que estos archivos html pueden ser actualizados constantemente (son el manual de uso, el manual de estilo de IM y una guía rápida de tips).
GAMBAS
Copy "./index1.html" To sAppDir
&/ "index1.html"
Copy "./index2.html" To sAppDir
&/ "index2.html"
Copy "./index3.html" To sAppDir
&/ "index3.html"
Mensajes: 364
Temas: 29
Gracias Recibidas: 105 en 79 posts
Gracias Dadas: 13
Registro en: Jul 2020
07-09-2022, 02:39
(Última modificación: 07-09-2022, 11:34 por
vuott.)
Yo creo que es más simple directamente borrar la versión en el disco y copiar la nueva.
De todos modos, si quieres hacer una comparación entre el nuevo y el antiguo archivo html, como los archivos html esencialmente son archivos de texto, puedes

cargar ambos archivos y verificar si hay algunas diferencias en el texto.
"Los horizontes perdidos nunca regresan. " (F. Battiato, La stagione dell'amore, 1983)
"Las ondas nunca regresan. " (Genesis: Ripples - A trick of the tail, 1976)
Mensajes: 74
Temas: 23
Gracias Recibidas: 14 en 8 posts
Gracias Dadas: 36
Registro en: Sep 2020
Tienes razón Vuott, además es una línea contra no sé cuantas para hacer una comparación.
Mensajes: 1,416
Temas: 202
Gracias Recibidas: 350 en 257 posts
Gracias Dadas: 258
Registro en: Jul 2020
07-09-2022, 11:53
(Última modificación: 07-09-2022, 12:00 por
tincho.)
(07-09-2022, 02:19)alberto-moyano escribió: Que piensan que es mejor, directamente borrar la versión en el disco y copiar la nueva sin comparar al iniciar la aplicación o desarrollar un algoritmo que haga la comparación, (ergo que vale más, eficaz o eficiente).
Como usuario de un disco SSD yo siempre trato de evitar escribir en el disco todo lo que se pueda, dicho esto si estas constantemente escribiendo la misma cosa, exactamente igual, te diria que no la escribas otra vez y para serciorarte usa una rutina de comparación.
Pero es muy sencillo hacerlo. Al tratarse de un archivo de texto el largo del texto que contiene el archivo es igual al tamaño del mmismo, y ademas si tienes una variable string en gambas que contiene lo que ira a parar al archivo "nuevo" puedes comparar este texto con el tamaño del archivo y si son el mismo no reescribes.
Pero este método no asegura el exito en caso que solo cambie un caracter.
Entonces este otro es el adecuado.
GAMBAS
s1 = "hola mundo"
s2
= File.
Load(User.
Home &/ "unarchivo.txt")
1 Saludo.
Mensajes: 364
Temas: 29
Gracias Recibidas: 105 en 79 posts
Gracias Dadas: 13
Registro en: Jul 2020
07-09-2022, 12:08
(Última modificación: 07-09-2022, 12:09 por
vuott.)
(07-09-2022, 11:53)tincho escribió: este otro es el adecuado
Perdóname, no comprendo el porqué.
"Los horizontes perdidos nunca regresan. " (F. Battiato, La stagione dell'amore, 1983)
"Las ondas nunca regresan. " (Genesis: Ripples - A trick of the tail, 1976)
Mensajes: 1,416
Temas: 202
Gracias Recibidas: 350 en 257 posts
Gracias Dadas: 258
Registro en: Jul 2020
(07-09-2022, 12:08)vuott escribió: Perdóname, no comprendo el porqué. 
Si por ejemplo:
s1 = <html><p>Norberto Aníbal Napolitano, popularmente conocido como Pappo</p></html>
s2 = <html><p>Norberto Aníbal Napolitano. popularmente conocido como Pappo</p></html>
Donde solo cambia un caracter, la coma por el punto, el primer algoritmo dara por iguales ambos contenidos cuando no lo son.
1 Saludo.
Mensajes: 364
Temas: 29
Gracias Recibidas: 105 en 79 posts
Gracias Dadas: 13
Registro en: Jul 2020
(07-09-2022, 12:16)tincho escribió: el primer algoritmo dara por iguales ambos contenidos cuando no lo son.
Estoy de acuerdo, pero

no comprendo porqué en el caso de este tu ejemplo (...coma y punto) el otro es mejor.
"Los horizontes perdidos nunca regresan. " (F. Battiato, La stagione dell'amore, 1983)
"Las ondas nunca regresan. " (Genesis: Ripples - A trick of the tail, 1976)
Mensajes: 1,416
Temas: 202
Gracias Recibidas: 350 en 257 posts
Gracias Dadas: 258
Registro en: Jul 2020
(07-09-2022, 12:23)vuott escribió: Estoy de acuerdo, pero
no comprendo porqué en el caso de este tu ejemplo (...coma y punto) el otro es mejor.
1 Saludo.
Mensajes: 74
Temas: 23
Gracias Recibidas: 14 en 8 posts
Gracias Dadas: 36
Registro en: Sep 2020
Hola Tincho, gracias por tu ejemplo. muy didáctico.
Justamente por la cantidad de veces que estoy escribiendo en disco [1] es que uso un disco SSD para el sistema y los programas y un disco de plato (de 7200 revoluciones) como bodega para los trabajos.
Saludos y gracias por las enseñanzas.
[1] hago unos 3 libros por mes, tienen cerca de 1.000.000 de caracteres en promedio cada uno a los que estoy constantemente codificando en LaTeX, en cada proceso de compilación con LuaLaTeX se autogeneran cerca de 10 archivos auxiliares que se reescriben en cada compilación (entre ellos el PDF que pesa varios megas) y realizo unas 20 compilaciones durante el trabajo de edición.
Mensajes: 1,416
Temas: 202
Gracias Recibidas: 350 en 257 posts
Gracias Dadas: 258
Registro en: Jul 2020