Messagerie


Sauvegarde des données d'un tableau dans un fichier INI

toutoune95800
mardi 1 mars 2016 à 19:44
Bonjour à tous,

J'ai essayé et re-essayé et encore une fois essayé et je n'ai pas réussi !  >:(

Voilà, je cherche à faire une chose toutes simple : j'ai un tableau, un fichier ini, deux actifs et un compteur. Quand je clique sur l'actif, un nombre aléatoire est généré pour le compteur et cette valeur s'écrit en X1Y1 dans le tableau.

Si, par la suite, je clique à nouveau, même procédé et la valeur du compteur s'écrit en X1Y2. Jusque là, tout va bien...

C'est que j'aimerais faire et ce que je n'arrive pas à faire est tout simplement le fait que si je clique sur mon deuxième actif, et bien toutes les valeurs du tableau se sauvegardent dans mon fichier INI !

Quelqu'un aurait-il la solution miracle ?  ;)

Merci à vous !
Patrice
2784 messages
Fusion 2.5 Dev Fusion 2.5
Firefly Exporteur UWP Exporteur iOS Exporteur Android Exporteur HTML5 Fusion 2.5+
mardi 1 mars 2016 à 20:31
Pourquoi ne pas simplement  sauvegarder le contenu du tableau ? Tu as vraiment besoin d'un ini ?
toutoune95800
mardi 1 mars 2016 à 21:47
En faite chaque chiffre du compteur correspond à une ligne supprimée dans une liste. Au chargement de la scène, j'aimerais que Fusion supprime toutes les lignes dont le numéro apparaît dans le tableau.
890 messages

mardi 1 mars 2016 à 22:54
supprimer, c'est soit détruire la ligne soit re-écrire sur.
Pour ma part j'utiliserais 1 seul tableau texte sur 2 dimensions :
en X, toutes tes phrases, en Y1 l'info que cette ligne doit être conservée ou détruite (genre "0" ou "1"). Quand tu voudras stoquer une nouvelle phrase, il te suffira de lancer une première boucle pour la stoquer sur une phrase à détruire, et une seconde si aucune place de libre n'a été trouvée pour augmenter ta dimension en X de 1.
Qu'en penses-tu ?
Mais je n'ai peut être pas compris ce que tu souhaitais faire.
toutoune95800
mercredi 2 mars 2016 à 07:35
C'est vrai que je me suis mal exprimé. Mon jeu fonctionne avec une liste. Le but du jeu est de supprimer toutes les lignes de la liste (je vous passe des détails). Mais si le joueur veut disons remettre sa partie au lendemain, et bien lorsqu'il redémarrera le jeu il faut que toutes les lignes de la liste qu'il a supprimé soient supprimées ! Voilà pourquoi j'avais eu l'idée de crée un tableau qui mémorise le numéro de chaque ligne détruite. Je voulais sauvegarder son contenu de manière à ce qu'il soit rempli à l'ouverture du programme. Après une boucle lirait chaque ligne (ça non plus je ne sais pas le faire  :P) et supprimerait dans la liste le numéro de ligne correspondant aux données entrées dans le tableau !
Patrice
2784 messages
Fusion 2.5 Dev Fusion 2.5
Firefly Exporteur UWP Exporteur iOS Exporteur Android Exporteur HTML5 Fusion 2.5+
mercredi 2 mars 2016 à 09:02
L'objet liste permet facilement de charger et sauvegarder son contenu. Il suffit en fin de charger en début de partie et sauvegarder à la fin non ?
toutoune95800
mercredi 2 mars 2016 à 11:12
Oui Patrice, c'est exactement ça !  8)
Patrice
2784 messages
Fusion 2.5 Dev Fusion 2.5
Firefly Exporteur UWP Exporteur iOS Exporteur Android Exporteur HTML5 Fusion 2.5+
mercredi 2 mars 2016 à 11:24
Ben voilà. Tu sais faire ?
toutoune95800
mercredi 2 mars 2016 à 12:22
.... bah non !  :(  Ca se trouve, c'est encore un truc extrêmement logique auquel je n'ai pas pensé !
890 messages

mercredi 2 mars 2016 à 15:02
je pense que tu as plusieurs pb. (vous me dîtes si je lui dis des aneries surtout !)
Si ta liste a 10 lignes et que tu as sauvegardé le fait qu'il a détruit les numéro de lignes 2 et 3 : à la première boucle, tu détruis bien la ligne 2. Mais ta liste fait maintenant 9 lignes... du coups, ce n'est plus la ligne 3 qui faut détruire mais la 2 encore.
Donc en fait tu dois détruire le Numéro de ligne stocké - Nombre de destructions effectives. Et uniquement dans le cas où les numéros de lignes sont stockés dans un ordre croissant.
Attention : vérifie bien que tes listes et tes arrays ne sont pas indéxé à partir de 1. décoche cette option si ils l'étaient.

Maintenant je persiste : fait un array texte X,Y1 et tu stockes en X ta phrase et en Y1 le fait qu'elle a été supprimée ou non. Et pour tester tu utilises la valeur de X,Y1 val(array(X,Y1)). Au chargement de ton jeu, tu lances une boucle sur ton array et tu ne remplis la liste que si le Y1 est nul par exemple.

Dès que je récupère du temps, je te fais un exemple.
Kloug
1497 messages
Fusion 2.5
mercredi 2 mars 2016 à 17:50
Salut,

L'important est d'abord de comprendre le pourquoi du comment.

Cours sauvegarde.
https://www.dropbox.com/s/89t6u9exbxbxsgf/Legende3.zip?dl=1

Ensuite poser correctement le problème afin de le résoudre.
Mets en forme ta problématique via un fichier mfa, ensuite propose ce fichier afin de voir où tu bloques.

A+

Édit:
Le cours est vieux (lettre à mamie) mais le principe est toujours valable.
Patrice
2784 messages
Fusion 2.5 Dev Fusion 2.5
Firefly Exporteur UWP Exporteur iOS Exporteur Android Exporteur HTML5 Fusion 2.5+
mercredi 2 mars 2016 à 18:36
C'est ça que tu veux faire ?
https://www.dropbox.com/s/3i1hcbg1rbvplxd/Save.rar?dl=0
Kloug
1497 messages
Fusion 2.5
jeudi 3 mars 2016 à 06:31
Salut,

A mon humble avis avec l'objet ini, utiliser un numéro de ligne n'est pas la solution.

Il me semble qu'enregistrer le texte d'une ligne, afin de comparer deux valeurs alphanumériques serait plus approprié.

Qu'en pensez vous?

A+
890 messages

jeudi 3 mars 2016 à 08:36
tiens, essaye ça. Mais kloug a raison : fait un fichier avec ton problème simplifié. c'est plus simple et pour toi et pour ceux qui tente de t'aider ;). déjà même avec un fichier, on ne sait pas toujours quoi faire  !
http://www.teddysday.com/test filtrage liste phrase utilisateur.rar
toutoune95800
jeudi 3 mars 2016 à 17:34
Merci à tous pour vos réponses.

Patrice a raison : c'est exactement ce je voulais faire et j'avoue je suis très surpris : c'est quoi le fichier "Apppath$ + "save.txt" ? C'est toi qui le crée ? En tout cas, franchement, bravo et encore merci à tous !

Une fois de plus ce forum m'a sauvé ! ;)
ValLoche23
1452 messages
Fusion 2.5 Dev Fusion 2.5
Firefly Exporteur UWP Exporteur iOS Exporteur Android Exporteur HTML5 Fusion 2.5+
jeudi 3 mars 2016 à 18:43
L'expression "Appath$" est une expression qui va chercher le dossier source de ton exécutable. Et le "+ save.txt",  veut dire qu'il va utiliser ce fichier texte !

En gros on peut traduire cette expression entière par :

Va dans le dossier de mon logiciel et utilise le fichier save.txt

C'est aussi simple que cela ! ^^
Modifié le jeudi 3 mars 2016 à 23:18 par ValLoche23
toutoune95800
jeudi 3 mars 2016 à 18:56
Merci ValLoche23 pour tes explications mais concrètement, dans l'éditeur d’événement, quel est l’événement qui permet de réalisé cette action ?
890 messages

jeudi 3 mars 2016 à 19:29
je n'ai pas compris ce que tu n'as pas compris... Quand tu veux sauver tu dois indiquer un nom de fichier ou utiliser une expression (c'est un bouton en bas à droite de la fenêtre de sauvegarde). une fois que tu cliques dessus, tu peux rentrer une chaine de caractère pour sauvegarder à un endroit que tu veux.
Si tu en fais pas cela, tu sauves à un endroit sur ta machine. Un endroit spécifique à ta machine. Alors qu'avec apppath$, c'est à l'endroit où se trouve ton appli dans le PC de ton utilisateur.
Bon courage pour ton dev !
Seyjin
1471 messages
Fusion 2.5 Dev
Exporteur Android Exporteur HTML5 Fusion 2.5+
jeudi 3 mars 2016 à 19:58
Salut salut,

Cette expression correspond à "Conditions spéciales » Noms de fichiers » Cheminement de l'application"
toutoune95800
jeudi 3 mars 2016 à 20:15
Merciiiiiiiiiiiiiiiiii ! ! ! J'ai réussi ! ! ! C'était tout bête ! ! ! Merci  Seyjin !  :bravos

Sans oublier tous les autres qui m'ont aiguiller sur la bonne voie ! Merci à tous !
Utilisateurs en ligne
  • Aucun utilisateur en ligne
  • 17 visiteurs au total

Derniers messages