[Résolue] Sauvegarde de donnée dans un ARRAY
Re: [Résolue] Sauvegarde de donnée dans un ARRAY
Bonjour Béryl,
Au début je suis passé par un tableau, mais je n'ai pas réussi à faire fonctionner ma sauvegarde donc, j'ai changé de méthode, mais je vais essayer votre réponse merci.
Au début je suis passé par un tableau, mais je n'ai pas réussi à faire fonctionner ma sauvegarde donc, j'ai changé de méthode, mais je vais essayer votre réponse merci.
Modifié en dernier par Theogar le 03 sept. 2024, 15:09, modifié 1 fois.
Re: Sauvegarde de donnée dans un ARRAY
Testé et validé, merci Béryl et tout le monde.
- Béryl
- Mi homme - Mi automate

- Messages : 1953
- Enregistré le : 20 oct. 2015, 12:00
- Localisation : localhost
Re: [Résolue] Sauvegarde de donnée dans un ARRAY
Un truc du genre :
Code : Tout sélectionner
Historique[0].write(Cpt.getIntValue());
for (byte i=0; i<=30; i++)
{
Historique[i+1].write(Historique[i].getIntValue());
}
Re: [Résolue] Sauvegarde de donnée dans un ARRAY
Ce que vous avez écrit n'est pas ce que je recherche.
Cela rempli toutes les lignes de mon tableau dès la première sauvegarde. Je voulais qu'une seule ligne soit rempli chaque jour à 5h par la valeur précédente.
J'ai écrit ceci :
Historique_[30].write(Historique_[29].getIntValue());
Historique_[29].write(Historique_[28].getIntValue());
/////
Historique_[1].write(Historique_[0].getIntValue());
Historique_[0].write(CPT_journalier.getIntValue());
Cela prend sûrement trop de ligne pour ce que je veux faire et doit sûrement être optimisable, mais cela fait ce que je souhaite faire.
Edit: J'ai réussi à l'optimiser en remaniant ce que Béryl à écrit:
for (int i = 30; i > 0; i--) {
Historique_.write(Historique_.getIntValue());
}
Historique_[0].write(CPT_journalier.getIntValue());
Cela rempli toutes les lignes de mon tableau dès la première sauvegarde. Je voulais qu'une seule ligne soit rempli chaque jour à 5h par la valeur précédente.
J'ai écrit ceci :
Historique_[30].write(Historique_[29].getIntValue());
Historique_[29].write(Historique_[28].getIntValue());
/////
Historique_[1].write(Historique_[0].getIntValue());
Historique_[0].write(CPT_journalier.getIntValue());
Cela prend sûrement trop de ligne pour ce que je veux faire et doit sûrement être optimisable, mais cela fait ce que je souhaite faire.
Edit: J'ai réussi à l'optimiser en remaniant ce que Béryl à écrit:
for (int i = 30; i > 0; i--) {
Historique_.write(Historique_.getIntValue());
}
Historique_[0].write(CPT_journalier.getIntValue());
- Béryl
- Mi homme - Mi automate

- Messages : 1953
- Enregistré le : 20 oct. 2015, 12:00
- Localisation : localhost
Re: [Résolue] Sauvegarde de donnée dans un ARRAY
J'ai pas tout compris, là...
Mon code fait exactement la même chose que le tient, non ?
Que tu le fasses ligne par ligne ou dans une boucle revient au même !
De plus, je ne comprends pas la deuxième partie, avec ta boucle.
Tu n'utilises pas la variable i !
M'enfin, si ton problème est résolu, c'est toujours ça !
Mon code fait exactement la même chose que le tient, non ?
Que tu le fasses ligne par ligne ou dans une boucle revient au même !
De plus, je ne comprends pas la deuxième partie, avec ta boucle.
Tu n'utilises pas la variable i !
M'enfin, si ton problème est résolu, c'est toujours ça !
Re: [Résolue] Sauvegarde de donnée dans un ARRAY
je n'arrive pas à faire apparaître les "i" dans mon code ils s'effacent lors de l'envoie de celui-ci, mais j'ai un "i" après "Historique_" et j'ai "i-1" après "write(Historique_"
Par contre, de mon côté je suis désolé, mais votre code ne marchait pas, celui-ci remplissait mon tableau de l'historique 1 à 31 avec la valeur de mon niveau, alors que là, l'historique 1 prend la valeur de mon niveau, toutes les autres valeurs restent à zéro. Il faut attendre nouvelle journée pour que la valeur de mon historique 1 se décale sur l'historique 2 et l'historique 1 récupère la valeur du niveau, ainsi de suite jusqu'à que mon tableau soit rempli.
Par contre, de mon côté je suis désolé, mais votre code ne marchait pas, celui-ci remplissait mon tableau de l'historique 1 à 31 avec la valeur de mon niveau, alors que là, l'historique 1 prend la valeur de mon niveau, toutes les autres valeurs restent à zéro. Il faut attendre nouvelle journée pour que la valeur de mon historique 1 se décale sur l'historique 2 et l'historique 1 récupère la valeur du niveau, ainsi de suite jusqu'à que mon tableau soit rempli.
Re: [Résolue] Sauvegarde de donnée dans un ARRAY
Cela ne marche pas en effet, car tu écris Historique[0] dans Historique[1] puis tu écris Historique[1] dans Historique[2] etc...Béryl a écrit : ↑03 sept. 2024, 15:30 Un truc du genre :
Code : Tout sélectionner
Historique[0].write(Cpt.getIntValue()); for (byte i=0; i<=30; i++) { Historique[i+1].write(Historique[i].getIntValue()); }
Autrement dit, si tu 1 dans Historique[0] tu vas écrire cette même valeur dans le reste du tableau
Plutôt du genre décaler le tableau pour ensuite y écrire la valeur au premier emplacement comme cela :
Code : Tout sélectionner
for (byte i=0; i<=30; i++)
{
Historique[30-i].write(Historique[29-i].getIntValue());
}
Historique[0].write(Cpt.getIntValue());
-
philou77
- Mi homme - Mi automate

- Messages : 2142
- Enregistré le : 21 oct. 2015, 10:00
- Localisation : Ile de France
Re: [Résolue] Sauvegarde de donnée dans un ARRAY
Salut !
Laisse tomber Durando, de toute façon il voulais faire un décalage par jour et pas 30.
Donc il était plus rapide de prendre le numéro du jour et de le prendre en référence pour le nombre de boucle à faire pour décaler ses valeurs.
Laisse tomber Durando, de toute façon il voulais faire un décalage par jour et pas 30.
Donc il était plus rapide de prendre le numéro du jour et de le prendre en référence pour le nombre de boucle à faire pour décaler ses valeurs.
Si vous avez compris tout ce que je viens d'écrire, c'est que j'ai dû faire une erreur quelque part ! 

