Lua – Concatenar 2 archivos

En una anterior entrada se ha visto un ejemplo de código en Lua que nos permitía básicamente comprobar el tamaño de archivos y pode calcular cuanto ocuparían si se concatenasen. Ese código puede verse en esta entrada: Predecir el tamaño de la concatenación de 2 archivos.

En esta otra entrada vamos a ver un ejemplo de código de como crear un programa en Lua que nos permita concatenar 2 archivos.

Para eso se necesitan 2 archivos de entrada y uno de salida. Esos los indicaremos como argumentos.
Es posible bajar todo el código y los archivos de ejemplo desde aquí: join2files.zip

Indicaremos por tanto como parámetros: archivo1 archivo2 archivosalida.

Ejemplo de como ejecutarlo:

$ lua join2files.lua archivo1.it archivo2.it juntos.it

El código creo que no es lo mejor del mundo pero tendría que entenderse como ejemplo:

nArchivoEntrada1 = arg[1]
nArchivoEntrada2 = arg[2]
nArchivoSalida = arg[3]

if ( nArchivoEntrada1 == nil or nArchivoEntrada2 == nill or nArchivoSalida == nill ) then
        print("Uso: lua join2files.lua archivo1 archivo2 archivosalida")
else
        cArchivoEntrada1 = io.open(nArchivoEntrada1, "rb")
        cArchivoEntrada2 = io.open(nArchivoEntrada2, "rb")
        cArchivoSalida = io.open(nArchivoSalida, "wb")

        cArchivoSalida:write(cArchivoEntrada1:read("*all"))
        cArchivoSalida:write(cArchivoEntrada2:read("*all"))

        cArchivoEntrada1:close()
        cArchivoEntrada2:close()
        cArchivoSalida:close()
end

Basicamente junta 2 archivos en uno solo. No tiene mucho misterio. En el zip se pueden ver algunas lineas comentadas para que se pueda al mismo tiempo obtener el tamaño de cada archivo y el tamaño final.

Deja un comentario