Sauvegarde fichier GTK+

mackaB Messages postés 28 Date d'inscription jeudi 14 avril 2005 Statut Membre Dernière intervention 31 août 2007 - 23 mai 2006 à 15:17
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 - 23 mai 2006 à 18:55
j arrive pas a coder en gtk + la sauvegarde d'un fichier.. ça doit
pas etre très dur je sais mais j'y arrive pas.. j'arrive à ouvrir un
fichier par-contre... si quelqu'un peut m'aider..ca m'énerve...merci

4 réponses

luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
23 mai 2006 à 16:25
Bas ou est le pb ? C'est pas un pb de gtk, mais de C/C++. Ya 15
messages par semaine sur ce sujet. Donc tu devrais pouvoir t'en sortir.
0
mackaB Messages postés 28 Date d'inscription jeudi 14 avril 2005 Statut Membre Dernière intervention 31 août 2007
23 mai 2006 à 16:41
mais il y a des fonctions spéciales a gtk pour ca et j'arrive pas à
les utiliser.. j'arrive a ouvrir une fenetre pour sauvegarder mais j'
arrive pas à créer un nouveau fichier s'il existe pas ni à sauvegarder
les données sur un fichier existant..


void OnSave(GtkWidget *pWidget, gpointer data)

{

 


  GtkWidget *pFileSelection;

  GtkWidget *pDialog;

  GtkWidget *pParent;

  gchar *sChemin;

 

 

 

  int i;


 

 

  pParent = GTK_WIDGET(data);


  /* Creation de la fenetre de selection */

    pFileSelection = gtk_file_chooser_dialog_new("Sauvegarder...",

           
           
 GTK_WINDOW(pParent),

           
           
 GTK_FILE_CHOOSER_ACTION_SAVE,

           
           
 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,

           
           
 GTK_STOCK_SAVE, GTK_RESPONSE_OK,

                         NULL);

    }


    /* On limite les actions a cette fenetre */

    gtk_window_set_modal(GTK_WINDOW(pFileSelection), TRUE);


    /* Affichage fenetre */

    switch(gtk_dialog_run(GTK_DIALOG(pFileSelection)))

      {   

 case GTK_RESPONSE_OK:

       }

 

 


    break;

      default:

    break;

          }

    gtk_widget_destroy(pFileSelection);

}
0
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
23 mai 2006 à 18:53
Mais ca ne créer pas de fichier cette boite de dialog, ca permet juste de récupérer un nom de fichier.

Apres il faut utiliser les fonctions du C++ (ou si vraiment tu supportes le C).


    switch(gtk_dialog_run(GTK_DIALOG(pFileSelection)))

      {   

 case GTK_RESPONSE_OK:

        gchar * filename = gtk_file_chooser_get_filename( GTK_FILE_CHOOSER(select_source));

       std::ofstream file(filename);

       if (!file)

    {

       // alors ton fichier est ouvert et créé

       file << "coucou\n";


       ....


       file.close();

    }

break;

       }
0
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
23 mai 2006 à 18:55
Oups pardon, j'ai tellement l'habitude de faire if (!file) c'est bien
sur if (file) dans ton cas. Enfin ca retourne si le fichier est
correctement ouvert et qu'il n'y a pas eu d'erreur. ya des variantes:

if (file.good())

if (file.fail())

etc ... regarde la doc pour toutes infos supplémentaires.
0
Rejoignez-nous