' Gambas module file Private MiHttp As New HttpClient Public Sub comprobar(nombreprograma As String, actualversion As String, rutaUrl As String, Optional texto As String) '' NombrePrograma: nombre del programa, ActualVersion= es la version del programa actual, rutaUrL= es url donde tengo que leer el archivo update,label etiqueta para que aparezca texto de espere... Dim a As Integer Dim Buffer, programa, VersionEnInternet, mensaje, mejoras, direccion As String Dim res As Integer MiHttp.url = rutaUrl MiHttp.Get() While (Lof(MiHttp) = False And a < 5) 'espero 1 segundo o que llegue a>10 a = a + 1 Wait 1 Wend If a = 5 Or Lof(MiHttp) = False Then If texto = "" Then message(("No ha sido posible conectarse al servidor") & "\n" & ("No se puede comprobar si hay nueva versión")) Return Endif If Lof(MiHttp) Then Read #MiHttp, Buffer, Lof(MiHttp) End If buffer = Replace$(buffer, "
", "") 'eliminos la cadena
buffer = Replace$(buffer, "
", "") programa = eliminar(Between(Buffer, "[programa]", "[/programa]"), "\n") ' no debe traducirse VersionEnInternet = eliminar(Between(buffer, "[version]", "[/version]"), "\n") ' no debe traducirse mejoras = Between(buffer, "[mejoras]", "[/mejoras]") ' no debe traducirse direccion = eliminar(Between(buffer, "[direccion]", "[/direccion]"), "\n") ' no debe traducirse If Upper$(programa) <> Upper$(nombreprograma) Then If texto = "" Then message.Error("Error solo para programador: El archivo de versión no es para este programa") Else If actualversion < VersionEnInternet Then mensaje = ("Existe una nueva versión") & "\n" & ("Programa:") & " " & programa & "\n " & ("Versión encontrada:") & VersionEnInternet & "\n" & ("Mejoras:") & "\n" & mejoras & " \n " & ("Enlace de descarga:") & "\n" & direccion res = Message.Question(Mensaje, ("Ir a la página de descarga"), ("No actualizar")) If res = 1 Then Desktop.Open(direccion) Endif Else If texto = "" Then mensaje = ("La versión actual:") & " " & actualversion & " \n " & ("es igual o superior que la que hay en el servidor") & " (" & VersionEnInternet & ")\n" & ("No es necesario actualizarla") message.info(mensaje) Endif Endif Endif End Private Function eliminar(cadena As String, caracter As String) As String Return Replace$(cadena, caracter, "") End Public Function Between(Datos As String, Cadena1 As String, Cadena2 As String) As String Dim iinf As Integer Dim isup As Integer iinf = InStr(Datos, Cadena1) + Len(Cadena1) isup = InStr(Datos, Cadena2, iinf) Return Mid(Datos, iinf, isup - iinf) End