begin process at 2012 05 29 00:24:28
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Algorithme

 > 

Compression, Split & Cryptage

 > 

Codeur \ Décodeur du code MORSE


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Codeur \ Décodeur du code MORSE

lundi 18 mai 2009 à 01:51:03 | Codeur \ Décodeur du code MORSE

lamone4

Bon voila , j'ai un mini projet en langage C dont le but est de réaliser un codeur\décodeur du code MORSE avec interface graphique en utilisant GTK+ comme bibliothèque graphique,le seul problème que j'ai c qd je saisi du texte a coder ou a décoder dans le gtk_text_entry ,la fonction qui s'exécute pour le codage ou le decodage ne code( ou decode) que le dernier caractère du texte saisi.pour étre trés clair voici la partie du code de mon application ou figure le problème.j'attend votre aide et merci d'avance.
*******************************************************
#include <stdlib.h>
#include <gtk/gtk.h>
typedef struct
{
GtkWidget *pWindow;
GtkWidget *pVBox;
GtkWidget *pHBox;
GtkWidget *pEntry;
GtkWidget *pEntryRO;
GtkWidget *pButtonAff;
GtkWidget *pButtonQuit;
GtkWidget *pLabel;
GtkWidget *pMenuBar;
GtkWidget *pMenu;
GtkWidget *pMenuItem;
} MainWindow;
void MAJ_Message(GtkWidget*, GdkEvent*, gpointer);
void Click(GtkWidget*, gpointer);
void ClickQuit(GtkWidget *pBoutton, gpointer pApp);
int main(int argc, char **argv)
{
MainWindow *pApp;
gtk_init(&argc, &argv);
pApp = g_malloc(sizeof *pApp);
pApp->pWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(pApp->pWindow), "Exemple deCours E2I1");
gtk_window_set_default_size(GTK_WINDOW(pApp->pWindow), 300, 200);
g_signal_connect(G_OBJECT(pApp->pWindow), "destroy",
G_CALLBACK(gtk_main_quit), NULL);
pApp->pMenuBar = gtk_menu_bar_new();
pApp->pMenu = gtk_menu_new();
pApp->pMenuItem = gtk_menu_item_new_with_label("Afficher");
g_signal_connect(G_OBJECT(pApp->pMenuItem), "activate", G_CALLBACK(Click),
(gpointer) pApp);
gtk_menu_shell_append(GTK_MENU_SHELL(pApp->pMenu), pApp->pMenuItem);
pApp->pMenuItem = gtk_separator_menu_item_new();
gtk_menu_shell_append(GTK_MENU_SHELL(pApp->pMenu), pApp->pMenuItem);
pApp->pMenuItem = gtk_menu_item_new_with_label("Quitter");
g_signal_connect(G_OBJECT(pApp->pMenuItem), "activate", G_CALLBACK(ClickQuit),
(gpointer) pApp);
gtk_menu_shell_append(GTK_MENU_SHELL(pApp->pMenu), pApp->pMenuItem);
pApp->pMenuItem = gtk_menu_item_new_with_label("Action");
gtk_menu_item_set_submenu(GTK_MENU_ITEM(pApp->pMenuItem), pApp->pMenu);
gtk_menu_shell_append(GTK_MENU_SHELL(pApp->pMenuBar), pApp->pMenuItem);
pApp->pVBox = gtk_vbox_new(TRUE, 0);
gtk_container_add(GTK_CONTAINER(pApp->pWindow), pApp->pVBox);
gtk_box_pack_start(GTK_BOX(pApp->pVBox), pApp->pMenuBar, FALSE, FALSE, 0);
pApp->pLabel = gtk_label_new("Saisissez votre Message ici :");
gtk_box_pack_start(GTK_BOX(pApp->pVBox), pApp->pLabel, TRUE, FALSE, 0);
pApp->pEntry = gtk_entry_new();
gtk_entry_set_max_length(GTK_ENTRY(pApp->pEntry), 256);
gtk_box_pack_start(GTK_BOX(pApp->pVBox), pApp->pEntry, TRUE, FALSE, 0);
pApp->pLabel = gtk_label_new("Vous avez saisi :");
gtk_box_pack_start(GTK_BOX(pApp->pVBox), pApp->pLabel, TRUE, FALSE, 0);
pApp->pEntryRO = gtk_entry_new();
gtk_entry_set_max_length(GTK_ENTRY(pApp->pEntryRO), 256);
gtk_box_pack_start(GTK_BOX(pApp->pVBox), pApp->pEntryRO, TRUE, FALSE, 0);
gtk_editable_set_editable(pApp->pEntryRO, FALSE);
pApp->pHBox = gtk_hbox_new(TRUE, 0);
pApp->pButtonAff = gtk_button_new_with_label("Afficher");
pApp->pButtonQuit = gtk_button_new_from_stock (GTK_STOCK_QUIT);
gtk_box_pack_start(GTK_BOX(pApp->pVBox), pApp->pHBox, TRUE, FALSE, 0);
gtk_box_pack_start(GTK_BOX(pApp->pHBox), pApp->pButtonAff, TRUE, FALSE, 0);
gtk_box_pack_start(GTK_BOX(pApp->pHBox), pApp->pButtonQuit, TRUE, FALSE, 0);
g_signal_connect(G_OBJECT(pApp->pEntry), "key_release_event", G_CALLBACK(MAJ_Message),(gpointer) pApp->pEntryRO);
g_signal_connect(G_OBJECT(pApp->pButtonAff), "clicked", G_CALLBACK(Click), (gpointer) pApp);
g_signal_connect(G_OBJECT(pApp->pButtonQuit), "clicked", G_CALLBACK(ClickQuit), (gpointer)
pApp);
gtk_widget_show_all(pApp->pWindow);
gtk_main();
g_free(pApp);
return EXIT_SUCCESS;
}
void MAJ_Message(GtkWidget *pEntry, GdkEvent *event, gpointer pEntryRO)
{
const gchar *sText;
char t[37]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r',
's','t','u','v','w','x','y','z','1','2','3','4','5','6','7','8','9','0',' '},
     m[37][6]={{".-"},{"-..."},{"-.-."},{"-.."},{"."},{"..-."},{"--."},{"...."},{".."},
      {".---"},{"-.-"},{".-.."},{"--"},{"-."},{"---"},{".--."},{"--.-"},{".-."},
   {"..."},{"-"},{"..-"},{"...-"},{".--"},{"-..-"},{"-.--"},{"--.."},{".----"},
   {"..---"},{"...--"},{"....-"},{"....."},{"-...."},{"--..."},{"---.."},{"---."},
   {"-----"},{"//"}};
gchar *temp;
int i,j,b=0;
sText = gtk_entry_get_text(GTK_ENTRY(pEntry));
for(i=0;i<strlen(sText);i++)
for(j=0;j<37;j++)
{
if(sText[i]==t[j])
   {
   if(sText[i]==' '){sprintf(temp," ");}
   if(j!=36){b++;}
   if(b==12){sprintf(temp,"\n\n");}
   sprintf(temp,"%s",m[j]);
   if((sText[i+1]!='\0')&&(sText[i+1]!=' ')&&(sText[i]!=' '))
   {sprintf(temp," / ");}  
   }
}
gtk_entry_set_text(GTK_ENTRY(pEntryRO), temp);
}

void Click(GtkWidget *pBoutton, gpointer pApp) {
gchar *temp;
GtkWidget *pEntryRO = ((MainWindow*)pApp)->pEntryRO,*pWindow = ((MainWindow*)pApp)->pWindow,*dialogue = NULL;
temp = gtk_entry_get_text(GTK_ENTRY(pEntryRO));
dialogue = gtk_message_dialog_new(pWindow, GTK_DIALOG_MODAL,GTK_MESSAGE_INFO,GTK_BUTTONS_OK, temp);
gtk_window_set_title(GTK_WINDOW(dialogue), "Votre Message");
gtk_dialog_run(GTK_DIALOG(dialogue));
gtk_widget_destroy(dialogue);
}

void ClickQuit(GtkWidget *pBoutton, gpointer pApp)
{
GtkWidget *confirmation;
confirmation = gtk_message_dialog_new (GTK_WINDOW(((MainWindow*)pApp)->pWindow), GTK_DIALOG_MODAL, GTK_MESSAGE_QUESTION,GTK_BUTTONS_YES_NO, "Voulez-vous quitter ?");
gtk_window_set_title(GTK_WINDOW(confirmation), "Confirmation pour quitter");
switch(gtk_dialog_run(GTK_DIALOG(confirmation)))
{
case GTK_RESPONSE_YES:
gtk_main_quit();
break;
case GTK_RESPONSE_NO:
gtk_widget_destroy(confirmation);
break;
}
}
**********************************************************************


Cette discussion est classée dans : menu, box, gtk, papp, gtkwidget


Répondre à ce message

Sujets en rapport avec ce message

probleme d'ouverture de fichiers [ par patouane ] Salut j'utilise GTK+ avec dev c++ et je cherche à ouvrir des fichiers situés dans "pEntry" le code passe à la compilition par contre l'exe bug. Peut e premiere fenêtre avec gtk [ par developvbdebut ] Bonjour tout le mondeJe suis en trein de m'initier aux applis fenêtré avec gtk, de façon modulaire.Voici, ce que j'ai fais, le compilateur n'indique a probleme avec mon code [ par beny100 ] bonjour a tous voici mon code#include #include #include #define Pi 3.1415926535#include #include #include <gtk/gt Callback menu gtk [ par iex ] Bonjour , Je suis en train de faire un petit programme en C avec la lib gtk. et j ai un probleme avec mon menu, quand je clique sur un element du menu Tracer une droite sur une image sous gtk [ par zaibacker ] Bonjour je suis débutant sous gtk J'ai chargé une texture et je voudrais y tracer une droite et l'enregistrer mais rien ne se passe si vous avez une i difference entre gtk_combo_box_new et gtk_combo_box_new_text [ par zaibacker ] Bonjour, j'aimerai connaitre la difference entre les 2 constructeurs gtk_combo_box_new et gtk_combo_box_new_text de la librairie gtk. J'hesite encore Algorithme génétique appliquer au TSP sous CUDA [ par alvaro2010 ] Bonsoir je développe une application sur l'algorithme génétique appliquer au TSP sous l'environnement CUDA avec le langage C mon problème c'est que lo Erreur de Segmentation [ par sebman ] Bonjour à tous Alors voilà, pour apprendre à programmer, j'ai pomper un code source que j'ai un peu modifier. Le programme initial servait à convert Fermer fenetre C et GTK 2.0 [ par ptiniko ] Bonjour à tous, Je sollicite votre aide pour un problème qui me fait perdre mon temps pour rien .Voilà, je débute en C (avec gtk) et donc je pose un b taille zone de text et couleur de label avec gtk+ [ par developvbdebut ] Bonjour tout le mondeJe voudrais mettre le label en vert.Et mettre une taille de longueur = 10 et largeur = 5 ,de la zone de text.Voici le codevoid en


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,296 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales