IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C++ Discussion :

Gestion des données


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 23
    Par défaut Gestion des données
    Bonjour,

    J'ai des questions sur les gestion des données dans un programme. J'ai cherché plusieurs tuto pour apprendre le c++ mais je n'ai rien trouvé concernant la gestion des données dans un cas réel.

    Par exemple j'ai un programme dans lequel je travaille avec des données. Quand je veux quitter le programme, je peut enregistrer les données dans un fichier, et à l'ouverture du programme je peux charger les données du fichier.
    Imaginons que j'ai créé une classe "classe" dans laquelle j'ai un conteneur STL d'objets d'une autre classe "eleve". La classe "eleve" contient a son tour plusieurs variables (nom, prénom, âge...).

    Comment faire pour sauvegarder ces données ? Dois-je utiliser une base de données (genre mysql) ? Comment sauvegarder ces données dans un fichier (pas en clair comme un fichier texte) ?

    Merci pour votre aide !

  2. #2
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Salut,

    De manière générale, ce que tu veux faire s'appelle la sérialisation.

    Il existe un grand nombre de solutions pour y parvenir, la plus simple étant de "simplement" créer un fichier texte non crypté à la plus compliquée utilisant une connexion sécurisée avec un serveur de base de donnée distant nécessitant une authentification (pour faire simple ), en passant par un cryptage "simple" des informations (pourquoi pas un simple code de cesar ) et des solutions alternatives de difficulté variable

    La question que j'aurais tendance à poser tient surtout sur la raison pour laquelle tu ne souhaites pas faire "au plus simple" et sauvegarder les informations dans "en clair".

    Mais ceci dit, tu peux te tourner (pour les techniques "relativement simples" et facile à mettre en oeuvre) :
    • Vers les composants read from / write to file de l'interface graphique que tu va utiliser
    • vers boost serialization
    • vers un système de base de donnée embarqué comme sqlite
    • vers d'autres solutions auxquelles je ne pense pas forcément dans l'immédiat

    Le gros problème que j'éprouve pour répondre à ta question vient surtout du fait que tu laisse beaucoup trop d'options ouvertes pour qu'il nous soit possible de te conseiller "en connaissance de cause".

    Quels sont les besoins que tu dois impérativement rencontrer par rapport à ces données

    Quel niveau de "sécurisation" est nécessaire

    Les données devront-elles être partagées par plusieurs utilisateurs / ordinateurs

    Si oui, y aura-t-il des accès concurrents à ces données (deux utilisateurs / ordinateurs devront-ils pouvoir accéder en même temps au données)

    sont autant de questions qui feront sans doute pencher la balance d'un coté ou de l'autre lorsqu'il s'agira de décider le meilleur moyen de parvenir à tes fins, et ce ne sont que celles auxquelles j'ai pensé sur le temps qu'il m'a fallu pour écrire la réponse
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 23
    Par défaut
    Merci beaucoup pour ta réponse. Je sais maintenant où chercher.

    En fait je m'entraine à créer des petits programmes "qui ne servent à rien", sauf à m'amuser et à améliorer l'apprentissage du C++.

    Dans la plus part des tutos, on trouve toujours comment écrire des données dans un fichier avec avec les fonctions de la librairie standard read/write soit en ascii ou soit en binaire. On trouve comment sauvegarder un mot, une phrase, au pire une classe simple en mode binaire, mais rien de vraiment concret.

    Le problème c'est que je rencontre des difficultés à sauvegarder des données dans un fichier (à travers une base de données ou pas), pour ensuite les récupérer pour pouvoir retravailler dessus.

    Je ne veux pas que les données soient en clair en texte pour trois raisons :
    1) ça fait un peu moins professionnel
    2) un minimum de sécurité
    3) ça me semble un peu archaïque pour gérer les données

    Pour l'instant je ne me soucis par trop de la sécurité.

    Je veux trouver un moyen puissant pour gérer (ajouter, accéder, supprimer, modifier) les données facilement, lorsque par exemple j'ai ceci :
    Une école qui a 5 classes (CP, CE1, CE2, CM1, CM2). Chaque classe à des matières et 20 élèves en moyenne. Chaque élève à un nom, prénom, des notes...
    Voilà à peu prêt sur quoi je "bosse".

  4. #4
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Citation Envoyé par rems14 Voir le message
    Je ne veux pas que les données soient en clair en texte pour trois raisons :
    1) ça fait un peu plus professionnel
    tu serais surpris du nombre de pro qui manipule des données en clair dans des fichiers texte...

    Il y a de nombreux formats possible, mais, regarde simplement le format XML
    2) un minimum de sécurité
    Quel besoin de sécurité peux tu avoir si c'est pour faire quelque chose qui "ne sert à rien" (ou en tout cas à rien d'autre qu'à passer ton temps)
    3) ça me semble un peu archaïque pour gérer les données
    Parce que XML, par exemple, c'est archaïque

    Bien au contraire, j'aurais tendance à dire que l'écriture de données au format binaire est archaïque et date du temps où le moindre byte était compté sur les supports (ah, le bon temps des disquettes 5"1/4 et des disques durs de 30 Mb )

    De plus, les fichiers binaires sont beaucoup moins facilement portable que les fichiers texte, pour toute une série de raisons, et le summom de la modernité actuellement est, justement, d'essayer de permettre une portabilité et une inter opérabilité maximale
    Pour l'instant je ne me soucis par trop de la sécurité.
    Raison de plus pour faire au plus simple
    Je veux trouver un moyen puissant pour gérer (ajouter, accéder, supprimer, modifier) les données facilement, lorsque par exemple j'ai ceci :
    Une école qui a 5 classes (CP, CE1, CE2, CM1, CM2). Chaque classe à des matières et 20 élèves en moyenne. Chaque élève à un nom, prénom, des notes...

    Voilà à peu prêt sur quoi je "bosse".
    Vu que c'est quand même pour t'habituer à la sérialisation, je dirais que la solution la meilleure sera surement la plus simple...

    Un "simple" fichier CSV (Comma Separated Values) te donnera déjà assez de fil à retordre

    Juste après, tu pourrais te tourner vers boost serialize et choisir, pourquoi pas, l'option de le sauvegarder au format XML.

    Une fois que tu auras atteint ce point, il te sera presque facile d'envisager d'envoyer le tout sur un réseau
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 23
    Par défaut
    Ok, je vais revoir mes attentes.

    Mais j'aurais voulu quand même ne pas avoir mes données en clair dans un fichier. Je ne veux pas qu'avec un simple éditeur de texte, je puisse changer les données. Peut être est-il possible de sécuriser le xml ? Je regarderai ça.

    En tous les cas merci de m'avoir "ouvert les yeux" sur ce sujet assez sombre pour moi.
    Peut être faudrait-il en parler un peu plus dans la FAQ ou dans les tuto c++ du site ?

  6. #6
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Citation Envoyé par rems14 Voir le message
    Ok, je vais revoir mes attentes.

    Mais j'aurais voulu quand même ne pas avoir mes données en clair dans un fichier. Je ne veux pas qu'avec un simple éditeur de texte, je puisse changer les données. Peut être est-il possible de sécuriser le xml ? Je regarderai ça.

    En tous les cas merci de m'avoir "ouvert les yeux" sur ce sujet assez sombre pour moi.
    Peut être faudrait-il en parler un peu plus dans la FAQ ou dans les tuto c++ du site ?
    tu as :

    Je suis ouvert à toute proposition sensée pour améliorer le contenu, mais il faudra me dire ce qu'il manque, parce que là, je ne vois pas trop
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  7. #7
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Salut,
    Citation Envoyé par rems14 Voir le message
    Je ne veux pas qu'avec un simple éditeur de texte, je puisse changer les données.
    Juste pour dire qu'un format binaire n'interdit en rien sa modification. Que celui qui n'a jamais modifié un fichier de sauvegarde en binaire pour des raisons plus ou moins avouables () lève le doigt ? Binaire ou texte, seul le cryptage apporte le plus de garantie quand à la confidentialité et la signature quand à l'authenticité. Tout le reste n'est qu'illusion.

    Les fichiers textes : amateur ? C'est même le contraire. Aujourd'hui XML est souvent utilisé comme format d'échanges de données pour son aspect flexible et facilement lisible.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 11
    Dernier message: 22/05/2008, 15h50
  2. gestion des données statiques / performance
    Par citizen_walker dans le forum JPA
    Réponses: 1
    Dernier message: 17/03/2008, 17h14
  3. [SQL] Gestion des données par boutons afin de les valider ou non
    Par tozy88 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 07/03/2008, 12h09
  4. Gestion des données avec MS sql server 2005
    Par rezgui_fawzi dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 25/01/2008, 15h55
  5. [débutant] comment détailler les règles de gestion des données
    Par ricachu dans le forum XML/XSL et SOAP
    Réponses: 7
    Dernier message: 27/08/2007, 11h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo