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 ;)
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...
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! ;)
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é
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.
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