(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.
Código:
Dim s As String
Dim z As Integer
s = "hola mundo"
z = String.Len(s)
If Stat(User.Home &/ "unarchivo.txt").Size = z + 1 Then
Message.Info(("Sin cambios"))
Else
Message.Info(("Actualizar"))
Endif
Pero este método no asegura el exito en caso que solo cambie un caracter.
Entonces este otro es el adecuado.
Código:
Dim s1 As String
Dim s2 As String
s1 = "hola mundo"
s2 = File.Load(User.Home &/ "unarchivo.txt")
If s1 & "\n" = s2 Then
Message.Info(("Sin cambios"))
Else
Message.Info(("Actualizar"))
Endif