Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/08/2010, 11:34
jose_cab
 
Fecha de Ingreso: noviembre-2008
Ubicación: Barcelona
Mensajes: 52
Antigüedad: 16 años
Puntos: 0
Verificar un Array Binario !! Me trae loco !!

Como pasar un Array a una variable

Hola. Tengo el siguiente código que me lee una imagen JPG de una URL para posteriormente tratarla y guardarla.

Código:
Ruta_img = "http://... cualquier URL donde hay una foto .jpg ó .gif"

Set objHTTP = Server.CreateObject("MSXML2.ServerXMLHTTP")
objHTTP.SetTimeouts 50000, 60000, 10000, 100000 
objHTTP.Open "GET", Ruta_img, false	 '-- Cogemos la imagen		
objHTTP.Send
Al tratarse de una imagen JPG lo que trae es un Array binario, si queremos podemos verlo:

Response.BinaryWrite (objHttp.ResponseBody) y nos muestra algo parecido a esto:

Código:
ÿØÿàJFIFddÿìDuckydÿîAdobedÀÿÛ„

ÿÀÅ
ÿÄð   
!1AQaq ‘"ð¡±Á2 Ñá#5ñBR$%r3C³4Tt´Õ&'bSDÔEUu•F7W
—(’²Òcsƒ“„”e…¥µÅ6V–GgwH‚Ód¤Ä‡8X¢†Æ)
!1AQaq‘¡±"2ðÁBR#Ñáb$râ3s’S4²ÂÒñ‚
La idea es poder pasar esto en ASP a una cadena para poder verificar si los primeros caracteres son estos ÿØÿà que corresponden en hexadecimal con FFh D8h FFh E0h y también verificar los últimos que son FFh D9h y significa que el fichero JPG tiene las marcas SOI e EOI correctas, pues me he encontrado con un fichero que tiene SOI pero no tiene EOI, pese a que el fichero se presenta como correcto y se ve en pantalla etc... me peta con el siguiente famoso error pues no tiene EOI:
Invalid JPEG file structure: two SOI markers

Por si queréis comprobarlo el fichero JPG que se ve perfectamente pero la utilidad no puede abrirlo por falta de EOI es el siguiente:
http://www.kramerspain.com/images/pr...es/PT-101R.jpg

La idea es poder verificar los primeros bytes y los últimos para ver si son correctos.

Por ejemplo, además de verificar la URL, etc..., con otra rutina verifico el Array para saber si está lleno y lo recorro para ver su tamaño.

Código:
If IsArray(objHttp.ResponseBody) = TRUE Then
      HayFoto = "1"
Else                               '-- URL Correcta, pero NO hay Foto
      HayFoto = "0"
      Set objHTTP=Nothing
End If

for I = 0 to UBound(objHttp.responseBody)	
Next
Response.Write("<BR>Tamaño: " & I )
Pero no se acceder al dato del bit I del objHttp.responseBody para ver si es el código que necesito o pasar el Array a una cadena para verificarlo fácilmente, me da igual.

Alguien me puede ayudar para verificar este Array