Charger une table depuis un texte sérialisé (table.load_string)
Déclaration
table_associee = table.load_string(texte_table)
Paramètres
- Texte de la table
Type texte, texte de la structure arborescente sérialisée de la table ; il ne peut contenir que des données statiques et aucun code dynamique
Valeur renvoyée
- Table associative
Type table ou nil, renvoie la structure de la table en cas de réussite du chargement et nil en cas d’échec
Description
Convertit la description textuelle de la structure arborescente en objet table
Dans une certaine mesure, table.load_string peut être considéré comme la fonction inverse de table.deep_dump (son utilité réelle dépend de l’existence de références circulaires ou de types référencés qui ne sont pas des tables)
Contrairement à load, cette fonction n’exécute pas le code contenu dans le texte et ne lit que les données statiques
L’exemple ci-dessous contient du code exécutable ; après son exécution,bvaut nil (le code n’est pas exécuté)
b = table.load_string[[ {
a = os.execute('reboot'), -- Ce code ne sera pas exécuté et renverra nil
} ]]
Exemple
local t = table.load_string[[ {
a = 1,
b = 2,
c = 3,
} ]]
sys.alert(t.b)
Remarque : le code ci-dessus utilise la fonction hors de ce chapitre sys.alert