Erreur en pascal, je pige pas???

Erreur en pascal, je pige pas??? - Delphi/Pascal - Programmation

Marsh Posté le 24-01-2003 à 16:53:57    

Voilà, quand j'essaie de compiler ce code avec turbo pascal 7, il n'y a aucun problème, la compilation se passe bien, mais quand je veux utiliser le programme, c'est là que ça commence à foirer. Le premier "read", celui qui se trouve dans la procédure "menu" passe sans problème, mais le second "read", qui se trouve dans la procédure "saisir_part", il l'ignore complétement, je comprends pas pk.
 
Voilà le code incriminé :
 
 

Code :
  1. program musique_editeur(input,output);
  2.         uses wincrt;
  3.         var
  4.            intro_mess:string;
  5.            commande:char;
  6.         procedure saisir_part;
  7.                   var machin:char;
  8.         begin
  9.              clrscr;
  10.              writeln('Veuillez entrez la partition sous la forme:');
  11.              writeln('tempo octave do ré mi fa sol la si +do');
  12.              writeln('');
  13.              writeln('Pour revenir à l''écran précédent entrez : r');
  14.              writeln('');
  15.              write('Entrez la partition ou la commande r >');
  16.              read(machin);
  17.              writeln(machin);
  18.         end;
  19.         procedure menu;
  20.         begin
  21.              clrscr;
  22.              intro_mess := 'Programme de Zik';
  23.              writeln(intro_mess);
  24.              writeln('');
  25.              writeln('Le programme accepte les commandes suivantes :');
  26.              writeln('s : Saisir une nouvelle partition au clavier.');
  27.              writeln('j : Jouer la partition en cours.');
  28.              writeln('l : Lire une partition depuis un fichier.');
  29.              writeln('e : Enregistrer une partition dans un fichier.');
  30.              writeln('b : Changer l''octave de la partition en cours.');
  31.              writeln('t : Changer le tempo de la partition en cours.');
  32.              writeln('c : Configurer le format de l''enregistrement dans un fichier.');
  33.              writeln('h : Aide.');
  34.              writeln('');
  35.              write('Entrez la commande >');
  36.              read(commande);
  37.              case commande of
  38.                   's': saisir_part;
  39.              else
  40.                  writeln('La commande n''existe pas, veuillez recommencer.');
  41.                  write('Entrez la commande >');
  42.                  read(commande);
  43.              end;
  44.         end;
  45. begin
  46.      menu;
  47. end.

Reply

Marsh Posté le 24-01-2003 à 16:53:57   

Reply

Marsh Posté le 24-01-2003 à 16:56:35    

Tu appuies sur Enter après avoir entré la valeur quand il fait le Read ?


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 24-01-2003 à 17:00:15    

Oui
C'est de la que vient l'erreur?

Reply

Marsh Posté le 24-01-2003 à 17:11:24    

Je pense, oui
Je crois que tu devrais plutôt lire la valeur dans une chaine (string) avec readln, et ensuite en extraire ce qui t'intéresse (ici le première caractère)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 24-01-2003 à 18:14:10    

Ok, merci je vais essayer.

Reply

Marsh Posté le 24-01-2003 à 18:15:42    

Excellent, ça marche merci bien.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed