Partage
  • Partager sur Facebook
  • Partager sur Twitter

Conserver des données

Après fermeture du logiciel, redémarrage etc.

Sujet résolu
    5 mai 2012 à 14:07:06

    Bonjour :)

    Je suis en train de développer un petit utilitaire pour la société de mes parents en Java.
    J'aimerais savoir comment (parce que je crois savoir que c'est possible) conserver des valeurs (par exemple un salaire, qui n'aurait pas de raison de changer au fur et à mesure de l'utilisation du logiciel) en "mémoire".
    Il suffit de rentrer une fois la valeur dans le champ de texte, et même après avoir quitté le logiciel, elle sera toujours présente à la prochaine utilisation.

    Merci d'avance de votre aide! ^^
    • Partager sur Facebook
    • Partager sur Twitter
    There are no strangers here, only friends you haven't met yet.
      5 mai 2012 à 16:53:06

      Salut,

      Regardes peut-être au niveau de la sérialisation si c'est ce que tu recherches.
      • Partager sur Facebook
      • Partager sur Twitter
        5 mai 2012 à 19:12:29

        Salut!

        Merci de ta réponse :)
        Ça y ressemble en partie mais je voudrais ne pas devoir enregistrer mes informations dans un fichier .txt mais dans le programme lui-même. Un peu comme un navigateur garde des préférences en mémoire...
        Est ce possible ?

        Sinon je peux toujours cacher le fichier texte mais le programme dépendra toujours de l'emplacement de ce fichier...
        Ou alors il faut que je place l'executable (.jar) et le fichier dans ... C:/Program Files/ (ou je ne sais où, n'étant pas sous Windows). et créer un raccourci sur le bureau comme tous les autres logiciels...
        Cette manip m'embête un peu car il s'agit d'un petit utilitaire, j'ai 4 chiffres à retenir...

        A ce compte là j'ai une question : est-il possible de faire un "installeur" de fichier .jar ?
        (Mon programme est destiné à être distribué, il faut que n'importe qui puisse installer ce logiciel sans avoir à le placer dans un document particulier ou autre)

        Merci d'avance :D
        • Partager sur Facebook
        • Partager sur Twitter
        There are no strangers here, only friends you haven't met yet.
          5 mai 2012 à 21:08:29

          Pourtant, c'est la seule solution :D . Quand un navigateur garde des préférences "en mémoire", il les sauvegarde dans un fichier texte, et comme ça elles ne sont pas réinitialisées au redémarrage de l'ordi ;) .

          Citation : LAUbuntu

          Sinon je peux toujours cacher le fichier texte mais le programme dépendra toujours de l'emplacement de ce fichier...


          Et ben non, c'est possible de spécifier un chemin relatif : Si ton programme est dans "C:/" et le fichier est dans "C:/files/", le chemin relatif sera "/files", comme ça tu pourras déplacer ton programme partout :-° .
          • Partager sur Facebook
          • Partager sur Twitter
            5 mai 2012 à 21:55:02

            Citation : Sparamoule

            Pourtant, c'est la seule solution :D . Quand un navigateur garde des préférences "en mémoire", il les sauvegarde dans un fichier texte, et comme ça elles ne sont pas réinitialisées au redémarrage de l'ordi ;) .



            J'y ai pensé en le marquant ^^

            C'est plutôt un chemin absolu qu'il faut non ?
            Où que soit le programme, il va toujours chercher au même endroit (C:/files) par exemple.

            Dans tous les cas faut que je vois pour faire un "installeur", qui déplace les fichiers au bon endroit.
            'falloir bosser mon MS-DOS je sens ^^
            • Partager sur Facebook
            • Partager sur Twitter
            There are no strangers here, only friends you haven't met yet.
              6 mai 2012 à 17:27:36

              Quand je voulais dire "déplacer ton programme partout", je voulais dire le programme + le fichier.

              Tu peux utiliser Inno Setup ou un autre software qui font des installateurs plutôt efficaces.
              • Partager sur Facebook
              • Partager sur Twitter
                6 mai 2012 à 18:17:51

                Salut,
                Et si tu as beaucoup d'informations à gérer et des traitements à faire dessus, ça pourrait être une bonne chose de s'intéresser aux bases de données.
                Peut être une base sqlite pour commencer (ce qu'utilise firefox d'ailleurs) si tu ne veux pas avoir à mettre en place une base oracle ou autre dès le début.
                Et si ton application grossit cela sera plus simple de migrer.
                • Partager sur Facebook
                • Partager sur Twitter
                  7 mai 2012 à 10:26:58

                  Non là j'avais vraiment 4 int à retenir donc le fichier texte convient parfaitement :)
                  Par contre j'ai pas réussi à faire d'installeur .bat (ni avec inno setup) à cause des permissions que je n'ai pas pour créer des fichiers textes dans c:/

                  Mais merci pour l'idée du sqlite. C'est possible de faire pareil en C++ j'imagine ?
                  Est ce que c'est une pratique courante pour les jeux vidéos par exemple ?
                  • Partager sur Facebook
                  • Partager sur Twitter
                  There are no strangers here, only friends you haven't met yet.
                    7 mai 2012 à 14:23:31

                    Pour l'emplacement du fichier texte, peut être faudrait t'il utiliser "user.home" (http://docs.oracle.com/javase/tutorial [...] /sysprop.html). Comme ça chaque utilisateur aurait ça propre conf et pas de problème de droit normalement.
                    (Ou alors "user.dir" pour que ça dépende de l'emplacement du programme).
                    Pour sqlite, oui, en C/C++ aussi tu pourrais accéder à la même base sqlite et tu doit pouvoir trouver des connecteurs pour python, php, perl, ruby, tcl ...

                    Est-ce que c'est souvent utilisé dans les jeux vidéo ?
                    Aucune idée, mais je dirais que les jeux vidéo sont moins des applications destinées à évoluer et pour lesquelles une sauvegarde dans une version doit pouvoir être migrée vers une nouvelle version.
                    Et puis les données à persister ne doivent pas représenter grand chose dans un jeux vidéo, on peut faire un fichier pour chaque sauvegarde utilisateur c'est assez simple et on a pas besoins d'accéder aux données autrement que pour charger cette sauvegarde.
                    Alors que pour une application de gestion de paie par exemple, l'application ne va pas garder charger à chaque lancement les 20 ans de données des 100 000 employées, et on pourra faire une requête pour trouver une information précise rapidement.
                    Tout cela fait que les bases de données ne doivent pas forcément être un choix très pertinent pour les jeux vidéos, apprès sqlite est un peu un compromis donc peut être que certains jeux l'utilisent quand même.
                    • Partager sur Facebook
                    • Partager sur Twitter

                    Conserver des données

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown