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

GTK+ avec C & C++ Discussion :

Enregistrement des données


Sujet :

GTK+ avec C & C++

  1. #1
    Candidat au Club
    Enregistrement des données
    slt
    j'ai une structure constitue de plusieurs champs et je veut le enregistrer en meme temps la structure dans un fichier.
    parce que je enregistrer chaque champs dans un fichier et apres je regrouper tous les champs dans un seul fichier mais cette methode et tres lourd.
    est ce qu'il existe une methode ou une fonction dans gtk+ permet de stocker tous les donner d'une structure dans un seul fichier directement.

    merci.

  2. #2
    Expert confirmé
    Non pas de fonction toute faite. C'est de la programmation standard en C. Mais si ce n'est que des données de type char, ca ne pose vraiment pas de gros problème à programmer.
    Utilisation de Glade avec Gtk+ - N'oubliez pas de consulter les FAQ Gtk et les cours et tutoriels Gtk

  3. #3
    Membre habitué
    Citation Envoyé par simoj Voir le message
    slt
    j'ai une structure constitue de plusieurs champs et je veut le enregistrer en meme temps la structure dans un fichier.
    parce que je enregistrer chaque champs dans un fichier et apres je regrouper tous les champs dans un seul fichier mais cette methode et tres lourd.
    est ce qu'il existe une methode ou une fonction dans gtk+ permet de stocker tous les donner d'une structure dans un seul fichier directement.

    merci.
    SAlut! bien sûr qu'on peut enregsiter une structure. ça se fait avec fwrite du C. Pour relire fread. Cherche sur le net tu verras des exemples d'utilisation sinon fais le moi savoir et je donne un exemple.

    Bon code
    Mes tutoriels sur Developpez.com : http://eric-gbofu.developpez.com
    Auteur du livre "Codename One – Développer en Java pour iOS, Android, BlackBerry et Windows Phone"
    Mon site sur la création de jeux vidéo : http://www.devjeux.com

  4. #4
    Membre expérimenté
    Le résultat va être très aléatoire si tu veux un fichier que tu puisses lire à partir de différentes machines (ie l'enregistrer sur une machine 32 bits, le relire sur une machine 64 bits, puis transférer tout ça vers une PS3 par exemple), donc je déconseille l'utilisation de fwrite/fread pour une structure.

  5. #5
    Membre habitué
    Citation Envoyé par teuf13 Voir le message
    Le résultat va être très aléatoire si tu veux un fichier que tu puisses lire à partir de différentes machines (ie l'enregistrer sur une machine 32 bits, le relire sur une machine 64 bits, puis transférer tout ça vers une PS3 par exemple), donc je déconseille l'utilisation de fwrite/fread pour une structure.
    En fait, tu as raison mais s'il ne compte pas trainer son appli sur différentes machines et que c'est par exemple un projet perso, pourquoi ne pas l'utiliser!

    Bonne suite!
    Mes tutoriels sur Developpez.com : http://eric-gbofu.developpez.com
    Auteur du livre "Codename One – Développer en Java pour iOS, Android, BlackBerry et Windows Phone"
    Mon site sur la création de jeux vidéo : http://www.devjeux.com

  6. #6
    Rédacteur

    Citation Envoyé par doderic Voir le message
    En fait, tu as raison mais s'il ne compte pas trainer son appli sur différentes machines et que c'est par exemple un projet perso, pourquoi ne pas l'utiliser!
    Parce qu'il n'est pas impossible qu'une fois écrite dans le fichier la structure soit détruite. Si elle contient des champs alloués dynamiquement, lors de la récupération ça va être n'importe quoi.

    Encore plus simple : avec des pointeurs, entre deux exécutions on va récupérer une adresse qui n'a aucun sens.

    La seule solution est d'écrite une fonction de sérialisation qui va transformer le contenu de la structure en texte (et inversement, pour la récupérer)

  7. #7
    Membre à l'essai
    bon soir tous
    Je voudrais le résultat comme ça:
    remarque :
    nombre de post =nombre de postes budgétaire
    différence =postes vacant
    post Occupé = postes occupé par Employé
    la règle de calcul est entre +1 et -1
    En cas d'insertion d'un employé
    1) si le nombre de postes est 120, chaque insertion d'un employé le [poste_occupé] = 1 et [différence] =119 (le nombre de postes- post_occupé)
    comptabilité
    120 1 119
    2) Du moment que le nombre de postes vacant actuel est 119, et lors de l' insertion d'un nouveaux employé, donc le [poste_occupé] = 2 et [différence] =118
    comptabilité
    120 2 118
    le nombre de postes budgétaires est toujours fixe chaque année

    suppression
    si le nombre de postes est 120 chaque suppression d'un employé le [nombre _post] = 1 et [différence] =119
    120 1 119
    Donc, comment afficher le résultat automatiquement sur la table grade dans les champs (' id_grade’,’ intitule_grade’, ' 120' , ’1’, ’ 119’) chaque insertion d'un employée ou suppression d'un employée dans la table employé
    insertion sur la table Employé
    affichage sur la table grade
    je crois qu'il y a un déclencheur pour chaque insertion ou surpression et je ne sais pas Comment faire ça sur sql Server 2012 ou Delphi 7
    creation par sql server 2012
    Code sql :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     CREATE TABLE [dbo].[gradde](
        [id_grade] [int] NOT NULL,
        [intitule_grade] [nvarchar](max) NOT NULL,
        [nombre  _post] [int] NOT NULL,
        [poste_ocuper] [int] NULL,
        [defference] [int] NULL,
     CONSTRAINT [PK_gradde] PRIMARY KEY CLUSTERED  ...


    Code sql :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     CREATE TABLE [dbo].[EMPLOYEE](
        [NUM_EMP] [int] NOT NULL,
        [NOM_EMP] [nvarchar](50) NOT NULL,
        [id_grade] [int] NOT NULL,
     CONSTRAINT [PK_EMPLOYEE] PRIMARY KEY CLUSTERED 
    ALTER TABLE [dbo].[EMPLOYEE]  WITH CHECK ADD  CONSTRAINT [FK_EMPLOYEE_gradde] FOREIGN KEY([id_grade])
    REFERENCES [dbo].[gradde] ([id_grade])
    GO
    ALTER TABLE [dbo].[EMPLOYEE] CHECK CONSTRAINT [FK_EMPLOYEE_gradde]
    GO...]

  8. #8
    Membre régulier
    Salut,

    J'ai pas vraiment compris, mais pour info, il y a une bibliothèque Json... Quelques exemples d'utilisation : https://wiki.gnome.org/Projects/JsonGlib

    Bye

  9. #9
    Modérateur

    Citation Envoyé par bhami9 Voir le message

    Comment faire ça sur sql Server 2012 ou Delphi 7
    Euh, du coup c'est quoi le rapport avec GTK, ou le langage C ? Ce que tu cherches à faire c'est de la sérialisation de données (serialization en anglais). Fais une recherche sur un moteur de recherche sur comment sérialiser des données pour ta base de données, tu trouveras plus de résultats.
    Documentation officielle GTK+ 3:
    GTK en C, GTK en Python

    Tutoriels GTK+ 3:
    GTK en C, GTK en Python

    Tutoriels par l'exemple (platform-demos):
    GTK (tous langages)