2015-09-17 1 views
0

J'ai un problème avec un code que j'ai trouvé sur Internet, je veux faire une image bitmap et la procédure dit:FILE_TYPE en Ada pour un bitmap

procédure

Put PPM (fichier: FILE_TYPE; Image: Image) est

Mais quand j'appelle la procédure dans le main, je ne sais pas ce que je devrais mettre dans le premier paramètre, une chaîne avec le nom, l'extension ou quoi ???

J'espère que vous pouvez me aider :)

+0

Bienvenue dans StackOverflow. Pouvez-vous ajouter un peu plus de contexte? Où avez-vous trouvé ce code en ligne? – mjuarez

Répondre

6

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).