love.filesystem.load (Français)

Disponible depuis LÖVE 0.5.0
Ce-tte function n'est pas supporté-e par des versions plus anciennes.

Charge un fichier Lua (mais ne l’exécute qu'optionnellement).

Fonction

Synopsis

chunk, errormsg = love.filesystem.load( name )

Arguments

string (Français) name
Le nom (et chemin) du fichier.

Retourne

function (Français) chunk
le bloc chargé.
string (Français) errormsg (nil)
Le message d'erreur si le fichier n'a pas pu être ouvert.

Exemple

Il est important de noter que love.filesystem.load n'invoque pas le code, il crée juste une fonction (un 'bloc' (chunk en anglais)) qui va contenir le contenu du fichier. Pour l’exécuter, vous devez ajouter () derrière.

Il est également important de noter que les fichiers chargés peuvent retourner des valeurs. Par exemple, le fichier suivant :

return 1+1

Retournera 2, lors qu’appelé de cette façon :

chunk = love.filesystem.load( name ) -- charge le v
local result = chunk() -- exécute le bloc
print('résultat: ' .. tostring(result)) -- affiche 'résultat : 2'

Cela provoque un écran bleu si il y a une erreur de syntaxe dans le fichier chargé. Si vous désirez continuer votre jeu lorsque le fichier n'est pas valide (par exemple si vous vous attendez à ce qu'il soit écrit par les utilisateurs), vous pouvez protéger l'appel au bloc à l'aide de pcall :

local ok, chunk, result
ok, chunk = pcall( love.filesystem.load, name ) -- Charge le bloc de façon sécurisée
if not ok then
  print('L'erreur suivante s'est produite : ' .. tostring(chunk))
else
  ok, result = pcall(chunk) -- exécute le bloc en toute sécurité

  if not ok then -- sera false (faux) si il y a une erreur
    print('L'erreur suivante s'est produite : ' .. tostring(result))
  else
    print('Le résultat du chargement est : ' .. tostring(result))
  end
end

Voir également


Autres langues