Fichier Lua de la lecture et de l'écriture d'erreur
Désolé si il y a déjà un sujet comme ça, mais je ne pouvais pas trouver toutes les qui ont quelque chose à voir avec Lua... Donc je suis à la base des problèmes dans l'écriture et la lecture des fichiers, voici ce que j'ai fait:
hp = 25
file = io.open("player.txt","w")
if file==nil then
io.output("player.txt")
io.close()
end
file:write(hp)
file:close()
et il semble bien fonctionner, c'est juste parfait... mais quand j'essaye d'ajouter le fichier:écrire(hp) à l'intérieur de la si-phrase, il ne fonctionne pas. Aussi, si je vais ajouter un fichier:lire("*ligne") juste après le fichier:écrire(hp), c'est ce qu'il est dit dans player.txt:
25b[NUL]ÈñZ[NUL]
file = io.open("player.txt","w")
Donc ce que je fais mal? Aussi [NUL] est bloc noir avec du blanc "NUL" texte dans notepad++ mais il ne peut pas être copié ici.
Modifier: Hmmh, il semble que l'ensemble du code est foiré, il réécrit toujours l'ensemble du dossier ;o
Edit2: Avait réellement aucune idée de ce dont je parlais, aujourd'hui je peux comprendre le fichier de contrôle de peu plus, voici ce qu'il aurait été ou ce que j'ai essayé de faire:
function existsFile(path)
x = io.open(path)
if x == nil then
io.close()
return false
else
x:close()
return true
end
end
if not existsFile("player.txt") then
file = io.open("player.txt", "w")
file:write(25)
hp = 25
file:close()
else
file = io.open("player.txt", "r")
hp = file:read("*number")
file:close()
end
Et je sais qu'il fais l'air de rien comme le code j'ai d'abord posté, mais c'est ce que j'ai simplement voulu dire.
Vous devez vous connecter pour publier un commentaire.
Dirait que vous vous êtes confus au sujet de l'drapeaux sur io.ouvert. Consultez le manuel pour être sûr de ce que vous voulez vraiment est le
w
drapeau depuis qui écrase tout.Essayer de faire une
file:write
lorsque vous êtes dans leif
ne devrait pas fonctionner, et je ne suis pas sûr pourquoi vous vous attendez à, depuisfile
estnil
. Vous êtes en train de dire que si le fichier n'a pas pu être ouvert, puis essayez d'écrire ceci dans le fichier, qui n'a pas de sens pour moi.if existsFile
scénarios inversée. Vous êtes en train de lire le fichier n'existe pas, et de l'écrire quand il le fait. Aussi, je ne pense pas que vous avez besoin d'unio.close()
depuis quand vous ne pouvez pas ouvrir le fichier.Pourriez-vous expliquer ce que vous essayez de faire dans ce code?
Pourquoi avez-vous besoin de vérifier si le fichier est nul? Lorsque vous ouvrez un fichier pour l'écriture, lua crée automatiquement si elle n'existe pas.
"w" mode signifie, que vous vous êtes effacer toutes les données dans un fichier et écrire de nouvelles données
Peut-être vous avez besoin d'une "mode"? Dans ce mode, les nouvelles lignes sont ajoutées à la fin du fichier.
nil
sur io.l'ouverture est une condition d'erreur. Quelque chose à partir d'un problème de permission de manquer de descripteurs de fichiers à une erreur de disque.Le bloc "if", vérifie si "fichier" est nul, de sorte que le bloc de code ne sera jamais exécuté.
read() ne fonctionne pas parce que vous avez ouvert le fichier en "w" (write) mode.
L'effacement de la totalité du fichier est le comportement attendu du mode d'écriture. Dans ce mode, le fichier est effacé, et puis vous écrire de nouvelles données.