Os muestro un programa que he hecho para comprobar el estado de links a megaupload (Para ver si está obsoleto y si no lo está indicar los datos del archivo).
Ingredientes:
-Gambas 2 XD
-1 ColumnView (CvArchivos)
-1 TextBox (TxtUrl)
-1 Boton (CmdCheck)
-1 HttpClient (HttpClient1)
-2 Labels
-1 Modulo de clase (MegauploadFile)
Formulario:
' gambas class file
PUBLIC Buffer AS String 'Variable para guardar los datos del HttpClient
PUBLIC Key AS Integer 'Variable para la clave del ColumnView
PUBLIC SUB Form_Open()
'Cargamos el columnView
CvArchivos.Columns.count = 4
CvArchivos.Columns[0].Text = "Nombre del Archivo"
CvArchivos.Columns[1].text = "Tamaño"
CvArchivos.Columns[2].text = "Url"
CvArchivos.Columns[3].text = "Estado"
CvArchivos.Columns[0].Width = 300
CvArchivos.Columns[1].Width = 100
CvArchivos.Columns[2].Width = 350
CvArchivos.Columns[3].Width = 120
END
PUBLIC SUB CmdCheck_Click()
'Comprobamos que el link sea a megaupload
IF Mid(TxtUrl.text, 1, 26) <> "http://www.megaupload.com/" THEN
Message.Error("La Url especificada no es a megaupload")
ELSE
HttpClient1.url = TxtUrl.text
HttpClient1.get()
END IF
END
PUBLIC SUB HttpClient1_Finished()
DIM Archivo AS MegauploadFile
IF Lof(HttpClient1) THEN
READ #HttpClient1, Buffer, Lof(HttpClient1)
END IF
'Creamos una instancia de la clase
Archivo = NEW Megauploadfile
'Comprobamos que el archivo este online
IF InStr(Buffer, "importlinkhref") <> 0 THEN
Archivo.Status = "Online"
Archivo.Url = HttpClient1.URL
Archivo.FileName = Between(Buffer, "<span>", "</span>")
Archivo.Size = Between(Buffer, "File size:</strong> ", "<br>")
ELSE
Archivo.Status = "Offline"
Archivo.Url = HttpClient1.URL
Archivo.FileName = "No existe el archivo"
Archivo.Size = "0.0 bytes XD"
END IF
'añadimos los Datos al columnview
CvArchivos.Add(key, Archivo.FileName)
CvArchivos[key][1] = Archivo.Size
CvArchivos[key][2] = Archivo.Url
CvArchivos[key][3] = Archivo.Status
key = key + 1
END
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
PUBLIC Buffer AS String 'Variable para guardar los datos del HttpClient
PUBLIC Key AS Integer 'Variable para la clave del ColumnView
PUBLIC SUB Form_Open()
'Cargamos el columnView
CvArchivos.Columns.count = 4
CvArchivos.Columns[0].Text = "Nombre del Archivo"
CvArchivos.Columns[1].text = "Tamaño"
CvArchivos.Columns[2].text = "Url"
CvArchivos.Columns[3].text = "Estado"
CvArchivos.Columns[0].Width = 300
CvArchivos.Columns[1].Width = 100
CvArchivos.Columns[2].Width = 350
CvArchivos.Columns[3].Width = 120
END
PUBLIC SUB CmdCheck_Click()
'Comprobamos que el link sea a megaupload
IF Mid(TxtUrl.text, 1, 26) <> "http://www.megaupload.com/" THEN
Message.Error("La Url especificada no es a megaupload")
ELSE
HttpClient1.url = TxtUrl.text
HttpClient1.get()
END IF
END
PUBLIC SUB HttpClient1_Finished()
DIM Archivo AS MegauploadFile
IF Lof(HttpClient1) THEN
READ #HttpClient1, Buffer, Lof(HttpClient1)
END IF
'Creamos una instancia de la clase
Archivo = NEW Megauploadfile
'Comprobamos que el archivo este online
IF InStr(Buffer, "importlinkhref") <> 0 THEN
Archivo.Status = "Online"
Archivo.Url = HttpClient1.URL
Archivo.FileName = Between(Buffer, "<span>", "</span>")
Archivo.Size = Between(Buffer, "File size:</strong> ", "<br>")
ELSE
Archivo.Status = "Offline"
Archivo.Url = HttpClient1.URL
Archivo.FileName = "No existe el archivo"
Archivo.Size = "0.0 bytes XD"
END IF
'añadimos los Datos al columnview
CvArchivos.Add(key, Archivo.FileName)
CvArchivos[key][1] = Archivo.Size
CvArchivos[key][2] = Archivo.Url
CvArchivos[key][3] = Archivo.Status
key = key + 1
END
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
MegauploadFile:
Saludos!