Je me demandais s'il y avait un moyen de lire les données d'un fichier ou peut-être simplement de voir s'il existe et de renvoyer un true
ou un false
function fileRead(Path,LineNumber)
--..Code...
return Data
end
Essaye ça:
-- http://lua-users.org/wiki/FileInputOutput
-- see if the file exists
function file_exists(file)
local f = io.open(file, "rb")
if f then f:close() end
return f ~= nil
end
-- get all lines from a file, returns an empty
-- list/table if the file does not exist
function lines_from(file)
if not file_exists(file) then return {} end
lines = {}
for line in io.lines(file) do
lines[#lines + 1] = line
end
return lines
end
-- tests the functions above
local file = 'test.lua'
local lines = lines_from(file)
-- print all line numbers and their contents
for k,v in pairs(lines) do
print('line[' .. k .. ']', v)
end
Vous devez utiliser I/O Library où vous pouvez trouver toutes les fonctions de la table io
, puis utiliser file:read
pour obtenir le contenu du fichier.
local open = io.open
local function read_file(path)
local file = open(path, "rb") -- r read mode and b binary mode
if not file then return nil end
local content = file:read "*a" -- *a or *all reads the whole file
file:close()
return content
end
local fileContent = read_file("foo.html");
print (fileContent);
Il existe une bibliothèque I/O disponible, mais si elle est disponible, cela dépend de votre hôte de script (en supposant que vous avez intégré Lua quelque part). Il est disponible si vous utilisez la version en ligne de commande. Le modèle complete I/O est probablement ce que vous recherchez.
Juste un petit ajout si l’on veut analyser un fichier texte séparé par des espaces.
read_file = function (path)
local file = io.open(path, "rb")
if not file then return nil end
local lines = {}
for line in io.lines(path) do
local words = {}
for Word in line:gmatch("%w+") do
table.insert(words, Word)
end
table.insert(lines, words)
end
file:close()
return lines;
end