Re: Problème avec les Put
[ Nouvelle discussion
| Répondre au groupe
|
fr.comp.lang.ada ]
Sujet: Re: Problème avec les Put
De: ludo...@ludovic-brenta.org (Ludovic Brenta)
Groupes: fr.comp.lang.ada
Organisation: Tele2
Date: 02. Feb 2008, 15:47:00
References: 1
|
"animatrix30@gmail.com" <animatrix30@gmail.com> writes:
> Salut à tous !!
> J'ai un problème très simple, mais je n'arrive pourtant pas à le
> résoudre.
> Quand je fais un Put("blabla") aucun souci au niveau de la compilation.
> Par contre si i est un integer et que je fais un Put(i), j'obtiens :
>
> expected type "Standard.String"
> found type "Standard.Integer"
> ==> in call to "Put" at a-textio.ads:243
> ==> in call to "Put" at a-textio.ads:209
Dans Ada.Text_IO on trouve:
procedure Put (Item : in String);
et procedure Put (File : in File_Type; Item : in String);
(ce sont les deux procédures mentionnées dans le message d'erreur),
mais pas:
procedure Put (Item : in Integer);
Une telle procédure se trouve en revanche dans Ada.Integer_Text_IO.
D'autre part, le type Integer, comme la plupart des types, a un
attribut Image qui est une fonction renvoyant une chaîne de caratère
représentant l'entier en décimal. Donc:
with Ada.Text_IO;
with Ada.Integer_Text_IO;
procedure Hello is
S : constant String := "Hello";
I : constant Integer := 42;
begin
Ada.Text_IO.Put (Item => S); -- OK
Ada.Integer_Text_IO.Put (Item => I); -- OK (première solution)
Ada.Text_IO.Put (Integer'Image (I)); -- OK (deuxième solution)
end Hello;
Note que Ada.Integer_Text_IO.Put prend deux paramètres optionnels:
Width (le nombre de chiffres à écrire) et Base (la base dans laquelle
écrire le nombre, par défaut 10). Tu peux donc contrôler plus
finement le résultat qu'avec Integer'Image.
Vois aussi la FAQ: http://fr.wikibooks.org/wiki/Programmation_Ada
--
Ludovic Brenta.

|
 cette fonctionnalité est reservée aux membres ayant une session active !
|