Ficheros binarios

17/11/2004 - 10:59 por dgironal | Informe spam
Muy buenas, ¿es posible lo siguiente?

Un sensor de temperatura/humedad generan un fichero "binario", (abierto con
el bloc de notas: copy/paste):

MicroLab 1.2  
ESTUFAGE 4 ÈËÄ ÷Ü ESTUFAGE 4 Y¯   
Temperature HB ðÁÿ    HB ðÁ ÿÿ ÿ°C
  ?A   Humidity ÈB ·   
ÈB ÿÿ ÿ%   ôA

Si abrimos el fichero con su correspondiente programa (MicroLab 3.18) nos
muestra la siguiente información:
16-nov-04 10:41:42 60,8 30,5

Necesito modificar los datos enviados por el sensor que genera el FICHERO.
La pregunta ¿es posible llegar a conocer la estructura de "registros",
"datos" que almacena el fichero?, con la intención de modificar valores (de
temperatura y/o humedad)

Gracias!!!

Preguntas similare

Leer las respuestas

#1 SqlRanger
17/11/2004 - 11:50 | Informe spam
Posible sí es, ahora, eso te puede llevar mucho tiempo puesto que la único
método conocido es el de prueba y error. Yo te recomendaría que buscaras la
documentación que describe el formato de ese archivo preguntando en la casa
fabricante del sensor de temperatura o en MicroLab.

Saludos:

Jesús López
MVP
www.solidqualitylearning.com




"dgironal" escribió en el mensaje
news:%
Muy buenas, ¿es posible lo siguiente?

Un sensor de temperatura/humedad generan un fichero "binario", (abierto


con
el bloc de notas: copy/paste):

MicroLab 1.2  
ESTUFAGE 4 ÈËÄ ÷Ü ESTUFAGE 4 Y¯  



Temperature HB ðÁÿ    HB ðÁ ÿÿ ÿ°C
  ?A   Humidity ÈB ·   
ÈB ÿÿ ÿ%   ôA

Si abrimos el fichero con su correspondiente programa (MicroLab 3.18) nos
muestra la siguiente información:
16-nov-04 10:41:42 60,8 30,5

Necesito modificar los datos enviados por el sensor que genera el FICHERO.
La pregunta ¿es posible llegar a conocer la estructura de "registros",
"datos" que almacena el fichero?, con la intención de modificar valores


(de
temperatura y/o humedad)

Gracias!!!


Respuesta Responder a este mensaje
#2 dgironal
17/11/2004 - 12:14 | Informe spam
Muchísimas gracias por contestar.

He hablado con la empresa que distribuye el programa en España (los
fabricantes son israelitas) y me han comentado que no es posible obtener esa
información.

Para averiguar la estructura hago lo siguiente (es un ejemplo de
prueba/error)
Muestro lo que leo en una caja de texto
¿Voy bien?, cuando me ponga en serio intentaré hacer conversiones (sacar la
fecha en claro,)
¿Más o menos es así como averiguar la estructura?


Dim f As System.IO.FileStream
Dim br As System.IO.BinaryReader
Dim p As Integer

f = New System.IO.FileStream("C:/uno.mlb", IO.FileMode.Open,
IO.FileAccess.Read)
br = New System.IO.BinaryReader(f)
p = br.PeekChar

While f.Position < f.Length
Try
Me.txt.Text += br.ReadString
Me.txt.Text += vbNewLine
Me.txt.Text += br.ReadString
Me.txt.Text += vbNewLine
Me.txt.Text += br.ReadString
Me.txt.Text += vbNewLine
Me.txt.Text += br.ReadSingle.ToString
Me.txt.Text += vbNewLine
Me.txt.Text += br.ReadDouble.ToString
Me.txt.Text += vbNewLine
Me.txt.Text += br.ReadUInt64.ToString

Catch ex As Exception
End Try

End While


Nota: supongo que almacenará la información:
Temperaturas: LISTA DE VALORES INDETERMINADA DE TEMPERATURAS-FECHA
Humedad: LISTA DE VALORES INDETERMINADA DE HUMEDAD-FECHA
Respuesta Responder a este mensaje
#3 SqlRanger
17/11/2004 - 12:36 | Informe spam
Si más o menos esa es la idea:

desde cualquier posición del archivo intentar leer todos los tipos de datos
posibles e intentar imaginar qué significado tienen y si tienen sentido o
no.

Ten en cuenta que te puedes encontrar zonas de cabecera, datos de longitud,
punteros a otras zonas del archivo y cosas por el estilo.

Un trabajo realmente difícil que requiere imaginación y mucha paciencia, te
deseo mucha suerte.

Saludos:

Jesús López



"dgironal" escribió en el mensaje
news:
Muchísimas gracias por contestar.

He hablado con la empresa que distribuye el programa en España (los
fabricantes son israelitas) y me han comentado que no es posible obtener


esa
información.

Para averiguar la estructura hago lo siguiente (es un ejemplo de
prueba/error)
Muestro lo que leo en una caja de texto
¿Voy bien?, cuando me ponga en serio intentaré hacer conversiones (sacar


la
fecha en claro,)
¿Más o menos es así como averiguar la estructura?


Dim f As System.IO.FileStream
Dim br As System.IO.BinaryReader
Dim p As Integer

f = New System.IO.FileStream("C:/uno.mlb", IO.FileMode.Open,
IO.FileAccess.Read)
br = New System.IO.BinaryReader(f)
p = br.PeekChar

While f.Position < f.Length
Try
Me.txt.Text += br.ReadString
Me.txt.Text += vbNewLine
Me.txt.Text += br.ReadString
Me.txt.Text += vbNewLine
Me.txt.Text += br.ReadString
Me.txt.Text += vbNewLine
Me.txt.Text += br.ReadSingle.ToString
Me.txt.Text += vbNewLine
Me.txt.Text += br.ReadDouble.ToString
Me.txt.Text += vbNewLine
Me.txt.Text += br.ReadUInt64.ToString

Catch ex As Exception
End Try

End While


Nota: supongo que almacenará la información:
Temperaturas: LISTA DE VALORES INDETERMINADA DE TEMPERATURAS-FECHA
Humedad: LISTA DE VALORES INDETERMINADA DE HUMEDAD-FECHA


Respuesta Responder a este mensaje
#4 dgironal
17/11/2004 - 13:03 | Informe spam
De nuevo mil gracias, en fin la Madre de la Ciencia es la Paciencia.

Nota: lo voy a intentar RECONOCIENDO que se trata de una "lucha contra
molinos de viento", encontrar una aguja en un pajar (no perderé demasiado
tiempo en ello, si me desborda es imposible)

Salu2
Respuesta Responder a este mensaje
#5 David Sans
23/11/2004 - 01:13 | Informe spam
Hola
Puedes desde el programa Microlab modificar los datos?
Si puedes intenta entrar solo una línea de una lectura de temperaturas y humedad.
Entonces te listas todos los bytes del fichero.
Luego solo modifica un dato, solo la fecha o solo la temperatura y vuelve a ver los valores de todos los bytes. Los que cambien son
los bytes que intervienen en el dato modificado, así poco a poco puedes ir descifrando los datos.

Que tengas mucha suerte.
David S.


Muy buenas, ¿es posible lo siguiente?

Un sensor de temperatura/humedad generan un fichero "binario", (abierto con
el bloc de notas: copy/paste):

MicroLab 1.2  
ESTUFAGE 4 ÈËÄ ÷Ü ESTUFAGE 4 Y¯   
Temperature HB ðÁÿ    HB ðÁ ÿÿ ÿ°C
  ?A   Humidity ÈB ·   
ÈB ÿÿ ÿ%   ôA

Si abrimos el fichero con su correspondiente programa (MicroLab 3.18) nos
muestra la siguiente información:
16-nov-04 10:41:42 60,8 30,5

Necesito modificar los datos enviados por el sensor que genera el FICHERO.
La pregunta ¿es posible llegar a conocer la estructura de "registros",
"datos" que almacena el fichero?, con la intención de modificar valores (de
temperatura y/o humedad)

Gracias!!!


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida