Je suis assez sûr que votre code provient de Rosetta Code.
Cela commence
with Ada.Characters.Latin_1;
with Ada.Streams.Stream_IO; use Ada.Streams.Stream_IO;
procedure Put_PPM (File : File_Type; Picture : Image) is
use Ada.Characters.Latin_1;
et File_Type
est défini dans Ada.Streams.Stream_IO
(ARM A.12.2).
Votre programme principal devra déclarer une variable de type Ada.Streams.Stream_IO.File_Type
, créer le fichier, et le transmettre à Put_PPM
:
with Ada.Streams.Stream_IO;
with Put_PPM;
procedure My_Main is
F : Ada.Streams.Stream_IO.File_Type;
Pic : ...
begin
Ada.Streams.Stream_IO.Create
(F,
Mode => Ada.Streams.Stream_IO.Out_File,
Name => “foo.ppm”);
Put_PPM (File => F, Picture => Pic);
end My_Main;
(cela ne répond pas à obtenir les paramètres de la ligne de commande , traitant le cas où foo.ppm
existe déjà, et beaucoup plus). Ada est destiné à être facile à lire, au détriment de l'effort de l'écrire, et l'approche standard pour sauver des lecteurs comme vous et moi de se demander où les choses sont déclarées est d'éviter l'utilisation. clause dans (au moins) les spécifications. Ainsi, l'exemple Rosetta aurait été mieux écrit
with Ada.Characters.Latin_1;
with Ada.Streams.Stream_IO;
procedure Put_PPM (File : Ada.Streams.Stream_IO.File_Type; Picture : Image) is
use Ada.Characters.Latin_1;
use Ada.Streams.Stream_IO;
(et de même pour Image
).
Bienvenue dans StackOverflow. Pouvez-vous ajouter un peu plus de contexte? Où avez-vous trouvé ce code en ligne? – mjuarez