christophedlr
Messages postés31Date d'inscriptiondimanche 4 décembre 2005StatutMembreDernière intervention 6 mars 2014 28 janv. 2014 à 12:01
Ca semble intéressant mais le morse ce n'est pas un caractère pour un caractère, car un seul caractère alphabétique, en morse peut correspondre à un point, une barre ou un ensembles de points et barres ; la description est fausse dans le sens où ce n'est pas 1 pour 1 ;) Par contre c'est intéressant comme idée juste pour montrer un peu ce qu'est le morse ;)
ndubien
Messages postés557Date d'inscriptiondimanche 25 septembre 2005StatutMembreDernière intervention10 mai 20144 14 déc. 2007 à 20:02
Ah petite idée,
celà marchera peut-être en utilisant un thread pour jouer les beeps du message morse ...
C'est juste une idée come ça!... ;)
ndubien
Messages postés557Date d'inscriptiondimanche 25 septembre 2005StatutMembreDernière intervention10 mai 20144 14 déc. 2007 à 19:57
Salut DESK_BSD,
moi aussi j'ai déjà eut un problème comparable avec mon vista: il ne faisait pas les beeps mais n'a jamais planté... Je ne sais pas du tout d'où pourrait venir le problème... Si quelqu'un le sait merci de me le transmettre...
A+ et encore merci pour l'information...
deck_bsd
Messages postés1243Date d'inscriptionjeudi 31 mars 2005StatutMembreDernière intervention 3 août 20162 14 déc. 2007 à 09:16
Yop,
Ne fonctionne pas chez moi. Je suis sous vista business. Je ne fait que taper sos dans la zone de text et cliquer sur ok et le programme plante.
ndubien
Messages postés557Date d'inscriptiondimanche 25 septembre 2005StatutMembreDernière intervention10 mai 20144 4 déc. 2007 à 20:00
D'accord merci pour l'information!
Neo_Fr
Messages postés653Date d'inscriptionmardi 6 décembre 2005StatutMembreDernière intervention10 novembre 20142 4 déc. 2007 à 19:48
Tu verifies que le pointeur ne soit pas null
if(!renvoie) //Erreur d'alloc..
Neo_Fr
ndubien
Messages postés557Date d'inscriptiondimanche 25 septembre 2005StatutMembreDernière intervention10 mai 20144 4 déc. 2007 à 19:44
Salut GAMEMONDE,
j'ai essayé de remplacer (comme vous me l'avez suggéré) :
if( temp<0 ) temp += 256;
int temp2 = strlen( CodeMorse[temp] );
par:
strlen( CodeMorse[(unsigned char)temp] );
mais celà ne fonctionne pas (enfin avec moi et dev-c++):
exemple si le texte saisie est: ççççççç, rien ne se passe (aucun beep pour le 'ç')...
tandis qu'avec mon ancien code celà fonctionnait...
Sinon, je ne comprend de quoi voulait parler Brunews par TOUJOURS VERIFIER UNE ALLOC ?
Que fallait-il ajouter pour vérifier cette alloc?
Sinon, pour les problèmes de libération de mémoire abordés par Neo_Fr dans son premier commentaire, je suis en train de regarder! ;)
A+ et merci pour toutes ces indications
gamemonde
Messages postés336Date d'inscriptionsamedi 9 août 2003StatutMembreDernière intervention 9 juillet 20112 3 déc. 2007 à 04:04
if( temp<0 ) temp += 256;
int temp2 = strlen( CodeMorse[temp] );
plus rapide en fesant
int temp2 = strlen(CodeMorse[(unsigned char)temp)
et attention tu ne vérifie jamais si la valeur vaux zéro si la personne rentre rien ton programme fonctionnera pas bien . lorsque tu ajoutes un code sur cppfrance tu dois faire attention
- optimisation de code
- erreur de retour de fonction
- libération de la memoire
- il doit y avoir des commentaires ( pas de problème de ton coté ) car un code posté doit être en but premier d'apprendre au autre et non pour soi
- le code doit apporté quelque chose de nouveau sur le site pas de redondance de code
car les serveurs coute cher
- faire attention a Brunews il est très grincheux ;)
alors amène nous un code plus propre mieux organisé et il sera bien pris par la communauté
allez bonne continuation
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 2 déc. 2007 à 22:36
char enMorse[TailleMorse+1];
Quelle horreur, plus aucun controle de la mémoire, autant aller faire de l'interprété.
renvoi = malloc(strlen(enMorse) + 1);
strcpy(renvoi,enMorse); // TOUJOURS VERIFIER UNE ALLOC !!!
return renvoi;
char * partition = ConvertirEnMorse( partitionTemp );
IL EST OU LE free(partition) ???
if( IsDlgButtonChecked( hDlg, IDR_FERMER ) ) killHWND = TRUE;
else killHWND = FALSE;
Inutile d'enregistrer ceci en début de procédure puisque c'est en sortie qu'on fermera ou non.
Le C est le langage PRO, ce qui implique qu'on agite qlq neurone avant les doigts sur le clavier. Le nbr de caractères obtenus par GetWindowText() n'est même pas vérifié pour savoir si on appelle ConvertirEnMorse(), etc, etc...
Laisse la production de masse aux VBistes et autres Csharpiens, sur cppfrance c'est la qualité qu'il faut montrer en sources. Tu en es très certainement capable alors montre le nous en arrangeant tout ceci et en prenant le temps de nous proposer nettement mieux pour la suite.
Bonne continuation.
Neo_Fr
Messages postés653Date d'inscriptionmardi 6 décembre 2005StatutMembreDernière intervention10 novembre 20142 2 déc. 2007 à 22:24
Chez moi ton prog se lance pas...
En rajoutant InitCommonControls(); ds WinMain ca marche..
Neo_Fr
Neo_Fr
Messages postés653Date d'inscriptionmardi 6 décembre 2005StatutMembreDernière intervention10 novembre 20142 2 déc. 2007 à 22:14
Ta fonction ConvertirEnMorse ne libere pa la memoire qu'elle alloue..
Tu devrait plutot passer un pointeur en argument pour le resultat et pourquoi utilise tu malloc?
L'equivalent win32 c'est HeapAlloc ou VirtualAlloc..
28 janv. 2014 à 12:01
14 déc. 2007 à 20:02
celà marchera peut-être en utilisant un thread pour jouer les beeps du message morse ...
C'est juste une idée come ça!... ;)
14 déc. 2007 à 19:57
moi aussi j'ai déjà eut un problème comparable avec mon vista: il ne faisait pas les beeps mais n'a jamais planté... Je ne sais pas du tout d'où pourrait venir le problème... Si quelqu'un le sait merci de me le transmettre...
A+ et encore merci pour l'information...
14 déc. 2007 à 09:16
Ne fonctionne pas chez moi. Je suis sous vista business. Je ne fait que taper sos dans la zone de text et cliquer sur ok et le programme plante.
4 déc. 2007 à 20:00
4 déc. 2007 à 19:48
if(!renvoie) //Erreur d'alloc..
Neo_Fr
4 déc. 2007 à 19:44
j'ai essayé de remplacer (comme vous me l'avez suggéré) :
if( temp<0 ) temp += 256;
int temp2 = strlen( CodeMorse[temp] );
par:
strlen( CodeMorse[(unsigned char)temp] );
mais celà ne fonctionne pas (enfin avec moi et dev-c++):
exemple si le texte saisie est: ççççççç, rien ne se passe (aucun beep pour le 'ç')...
tandis qu'avec mon ancien code celà fonctionnait...
Sinon, je ne comprend de quoi voulait parler Brunews par TOUJOURS VERIFIER UNE ALLOC ?
Que fallait-il ajouter pour vérifier cette alloc?
Sinon, pour les problèmes de libération de mémoire abordés par Neo_Fr dans son premier commentaire, je suis en train de regarder! ;)
A+ et merci pour toutes ces indications
3 déc. 2007 à 04:04
int temp2 = strlen( CodeMorse[temp] );
plus rapide en fesant
int temp2 = strlen(CodeMorse[(unsigned char)temp)
et attention tu ne vérifie jamais si la valeur vaux zéro si la personne rentre rien ton programme fonctionnera pas bien . lorsque tu ajoutes un code sur cppfrance tu dois faire attention
- optimisation de code
- erreur de retour de fonction
- libération de la memoire
- il doit y avoir des commentaires ( pas de problème de ton coté ) car un code posté doit être en but premier d'apprendre au autre et non pour soi
- le code doit apporté quelque chose de nouveau sur le site pas de redondance de code
car les serveurs coute cher
- faire attention a Brunews il est très grincheux ;)
alors amène nous un code plus propre mieux organisé et il sera bien pris par la communauté
allez bonne continuation
2 déc. 2007 à 22:36
Quelle horreur, plus aucun controle de la mémoire, autant aller faire de l'interprété.
renvoi = malloc(strlen(enMorse) + 1);
strcpy(renvoi,enMorse); // TOUJOURS VERIFIER UNE ALLOC !!!
return renvoi;
char * partition = ConvertirEnMorse( partitionTemp );
IL EST OU LE free(partition) ???
if( IsDlgButtonChecked( hDlg, IDR_FERMER ) ) killHWND = TRUE;
else killHWND = FALSE;
Inutile d'enregistrer ceci en début de procédure puisque c'est en sortie qu'on fermera ou non.
Le C est le langage PRO, ce qui implique qu'on agite qlq neurone avant les doigts sur le clavier. Le nbr de caractères obtenus par GetWindowText() n'est même pas vérifié pour savoir si on appelle ConvertirEnMorse(), etc, etc...
Laisse la production de masse aux VBistes et autres Csharpiens, sur cppfrance c'est la qualité qu'il faut montrer en sources. Tu en es très certainement capable alors montre le nous en arrangeant tout ceci et en prenant le temps de nous proposer nettement mieux pour la suite.
Bonne continuation.
2 déc. 2007 à 22:24
En rajoutant InitCommonControls(); ds WinMain ca marche..
Neo_Fr
2 déc. 2007 à 22:14
Tu devrait plutot passer un pointeur en argument pour le resultat et pourquoi utilise tu malloc?
L'equivalent win32 c'est HeapAlloc ou VirtualAlloc..
Sinon l'idée est pa mal :]
Neo_Fr