videos rapid para palabras mas lista generador etiquetas buscadas io lua

io - rapid - tags para videos de youtube



Leyendo archivos enteros en lua. (1)

Estoy tratando de leer un archivo mp3 completo para leer las etiquetas id3. Fue entonces cuando noté que el archivo: leer ("* a") aparentemente no lee el archivo completo sino una pequeña parte. Así que intenté crear algún tipo de solución para obtener el contenido de todo el archivo:

function readAll(file) local f = io.open(file, "r") local content = "" local length = 0 while f:read(0) ~= "" do local current = f:read("*all") print(#current, length) length = length + #current content = content .. current end return content end

para mi archivo de prueba, esto muestra que se realizan 256 operaciones de lectura, leyendo un total de ~ 113kB (el archivo completo es ~ 7MB). Aunque esto debería ser suficiente para leer la mayoría de las etiquetas id3, me pregunto por qué Lua se comporta de esta manera (especialmente porque no lo hace al leer archivos de gran tamaño basados ​​en texto, como * .oj o * .ase). ¿Existe alguna explicación para este comportamiento o tal vez una solución para leer de manera confiable todo el archivo?


Debo estar perdiendo algo, pero no veo por qué se necesita un bucle. Esto debería funcionar (pero es mejor que agregues el manejo de errores en caso de que el archivo no pueda abrirse):

function readAll(file) local f = assert(io.open(file, "rb")) local content = f:read("*all") f:close() return content end