Tengo varios valores hexadecimales que intento escribir en un archivo. Parece que Lua no lo admite de inmediato, ya que todos son tratados como cadenas en lugar de valores. Pensé que tendría que dividir un valor hexadecimal más largo, por ejemplo AABBCC en AA, BB, CC y usar string.char() en todos sus valores decimales consecutivamente para hacer el trabajo.Lua: escribir valores hexadecimales como un archivo binario
¿Existe una función incorporada que me permita escribir dichos valores directamente sin convertirlos primero? Usé caracteres de escape como "0xAA" y "\ xAA", pero no funcionó.
Editar: Déjame darte un ejemplo. Estoy buscando a un archivo de prueba en un editor hexadecimal:
00000000 00 00 00 00 00 00 ......
Y quiero escribir en él de la siguiente manera con el "AABBCC" cadena:
00000000 AA BB CC 00 00 00 ......
Lo que obtengo aunque con los caracteres de escape es:
00000000 41 41 42 42 43 43 AABBCC
¡Perfecto! Justo lo que estaba buscando. ¡Muchas gracias! – Zerobinary99
Esta solución parece agregar el valor hexadecimal 0c0D (o 13) a algunos lugares aparentemente aleatorios. Estaba tan cerca de lo que necesitaba. –
Bueno, ¿estás escribiendo esto en Windows? Si es así, entonces el problema está en [saltos de línea] (http://en.wikipedia.org/wiki/Line_break_ (computing)). Mientras que en Unix/Linux/Mac OS X, la nueva línea está representada por el único '\ n' = 0x0A, en Windows cuando escribe una nueva línea, incorpora dos bytes: 0x0D, 0x0A (13 10, CR + LF).Esta puede ser la razón por la que estás viendo 0x0D en lugares aleatorios. Intente ver si está cerca de 0x0A; si este es el caso, use herramientas de conversión para convertir a estilo Unix (solo '\ n'). –