Hace meses conocí a un Ing. en Electrónica, él se dedica a realizar prototipos de su área para que más adelante ponerlos en marcha. Así, se le presentó un problema de programación. El problema es el siguiente ...
Tenía datos en un archivo, del cual su estructura es la que presento
0xca, 0xee, 0xa6, 0xf4, 0x1a, 0x10, 0x17, 0x10
0x1c, 0x00, 0x1b, 0x00, 0x1c, 0x00, 0x1b, 0x00
...
...
...
EOF
Él deseaba covertir cada dato hexadecimal en forma binaria, pero su vez debía de partir cada 8 datos hexadecimales en 2, es decir 4 datos hexadecimales consecutivos.
Para programarlo hay muchos lenguajes de programación que me ofrecían una solución, queríamos hacerlo en C, pero desgraciadamente no disponíamos de GCC el compilador de C y tampoco disponíamos de Internet para su posterior instalación. Me acordé que disponía de Ruby :-O. Para aquellos que no saben qué es Ruby, pues simplemente es un lenguaje de programación orientado a objetos del cual cada fichero es interpretado para después dar una salida, en fin mucho rollo para eso mejor visiten su sitio sí están interesados en Ruby.
Saque mis manuales de Ruby, y este es el código que resulto después de 2 horas de lectura, investigación, programación y pruebas.
converter.rb
----------------------------------------------------
#!/usr/bin/ruby
require 'enumerator'
hexdata = []
temp = []
while line = gets
temp = line.split(', ')
temp.each { |n| hexdata.push n }
end
temp = nil
array = []
hexdata.each { |n| array.push '%08b' % n }
puts
hexdata = nil
array.each_slice(4) { |element| p element }
array = nil
----------------------------------------------------
Espero y les sirva a muchos. Saludos.
No hay comentarios:
Publicar un comentario