Difference between revisions of "love.filesystem.load (Français)"

(Created page with "{{newin (Français)|0.5.0|050|type=function}} Charge un fichier Lua (mais ne l’exécute qu'optionnellement). == Fonction == === Synopsis === <source lang="lua"> chunk,...")
 
m (Exemple: Fixed syntax error.)
 
Line 23: Line 23:
  
 
<source lang="lua">
 
<source lang="lua">
chunk = love.filesystem.load( name ) -- charge le v
+
local chunk = love.filesystem.load( name ) -- charge le v
 
local result = chunk() -- exécute le bloc
 
local result = chunk() -- exécute le bloc
print('résultat: ' .. tostring(result)) -- affiche 'résultat : 2'
+
print("résultat: " .. tostring(result)) -- affiche 'résultat : 2'
 
</source>
 
</source>
  
Line 34: Line 34:
 
ok, chunk = pcall( love.filesystem.load, name ) -- Charge le bloc de façon sécurisée
 
ok, chunk = pcall( love.filesystem.load, name ) -- Charge le bloc de façon sécurisée
 
if not ok then
 
if not ok then
   print('L'erreur suivante s'est produite : ' .. tostring(chunk))
+
   print("L'erreur suivante s'est produite : " .. tostring(chunk))
 
else
 
else
 
   ok, result = pcall(chunk) -- exécute le bloc en toute sécurité
 
   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
 
   if not ok then -- sera false (faux) si il y a une erreur
     print('L'erreur suivante s'est produite : ' .. tostring(result))
+
     print("L'erreur suivante s'est produite : " .. tostring(result))
 
   else
 
   else
     print('Le résultat du chargement est : ' .. tostring(result))
+
     print("Le résultat du chargement est : " .. tostring(result))
 
   end
 
   end
 
end
 
end

Latest revision as of 18:57, 29 September 2022

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 :

local 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