jueves, 12 de septiembre de 2013

Guardar datos tipo string en formato binario en labview


Ya hace tiempo me había topado con esta cuestión, sin embargo, si uno no sabe resolver sus dudad correctamente puede caer en un circulo vicioso donde no encuentre solución.
Es importante guardar la información en formato binario, ya que en este tipo de formato los archivos pesan una cuarta parte menos de que si se guardasen en Ascii, la velocidad para hacer lectura de estos es mucho mas rápido (refiriéndome a lectura como al proceso de decodificación), y claro si os queréis salvar la información para que nadie pueda leerla mas que vosotros, esta es la mejor opción.
Pues bien ya hace tiempo que me tope con LabVIEW, al principio me pareció algo burdo, sin embargo, a uno como programador le ahorra mucho tiempo, pues la programación es en diagrama de bloques, os aseguro que si lo prueban se sorprenderán de todo lo que podéis hacer.

En muchos sitios me eh encontrado con gente que se confunde entre el formato binario y la codificación binaria, que os aclaro son cosas muy distintas. El pasar el Ascci en unos y ceros en formato BCD (binario codificado en decimal) no significa que estemos guardando en formato binario, de echo seguimos en Ascci. Os aseguro que vosotros nos hemos topado con archivos en formato binario, si aquellos archivos que los abrimos y nos encontramos con puros símbolos extraños

€H@     €J@      M@     €H@      I@      M@      H@      L@      "@     €H@     €J@      M@     €H@      I@      M@      H@     €L@

La codificación anterior es de un archivo binario, los símbolos que se encuentran antes y después del "@ indican una cadena, esta cadena es un timestamp en formato 12 horas (la hora 00:00:00), y del otro extremo se encontraría respectivamente 00:00:01, entonces "@ da a entender que es un espacio en blanco.

Pues bien no os daréis una cátedra de esta codificación, pasemos a lo interesante.

¿Como salvar cadenas string en este formato?

Primero tenéis que tener instalado el LabVIEW (os recomiendo que se familiaricen con el lenguaje), si ya lo conocéis y so entráis para consultar el tema abajo os explicareis el código.



Este código codifica en formato binario, y en otro tiempo decodifica esta información.

-Es importante pasar toda nuestra cadena string a su significado numérico (para cada elemento de la cadena), no todo es automático en labview, y esto es un algoritmo hecho por mi mismo. Esto es necesario porque el codificador no acepta ascii como tal, si os queréis grabar el ascii puro en binario, sencillamente labview no codificara nada.

-En la parte de la decodificacion es importante saber que en binario, como todo esta en formato numérico, es necesario medir el archivo (numero bytes) y partirlos para asi tomar cada elemento para leerlo y decodificarlo, por eso agregue el "Quotient & remainder" cual nos facilita este trabajo.

-Es importante transformar lo numérico a string al momento de visualizar la cadena en ascii.

Pues bien me hubiera gustado profundizar mas en el tema pero carezco de tiempo, si os tenéis una duda podéis contactarme.

No hay comentarios:

Publicar un comentario