Leer y Escribir archivo binario

Desarrollo de aplicaciones de escritorio C#, c++, Java, Net, VB... y todos los frameworks y tecnologías relacionadas co este tipo de aplicaciones.
Es posible replicar esta función en lua?

Código: Seleccionar todo

ASCIIEncoding aSCIIEncoding = new ASCIIEncoding();
            BinaryReader binaryReader = new BinaryReader(File.Open(path, FileMode.Open));
            int num = (int)binaryReader.BaseStream.Length - 19;
            byte[] array = binaryReader.ReadBytes(19);
            byte[] array2 = binaryReader.ReadBytes(num);
            binaryReader.Close();
            byte b = array[10];
            for (int i = 0; i < num; i++)
            {
                byte[] expr_8F_cp_0 = array2;
                int expr_8F_cp_1 = i;
                expr_8F_cp_0[expr_8F_cp_1] -= b;
                b += array2[i];
            }
buscando en github encontré un repo pero no tengo la menor idea si con las funciones que tiene puedo replicar la función de c#
en lua puedes hacer esto ya que lua no tiene mucha nocion del contenido dentro de un string, simplemente conoce la posicion y el tamaño, y no tiene porque ser null terminated.

el ejemplo que pones podria ser algo asi.

file = readfile(...)
arr1 = string.sub(file, 0, 19)
arr2 = string.sub(file, 19, #file)

si quieres acceder a los bytes independientes de algo usas string.byte(arr1[x]) o si quieres crear un array con un tamaño determinado, por ejemplo 5 elementos usas string.char(0,0,0,0,0).

En lua no son tipos completos pero puedes usarlos igualmente.