Ada中的File_Type用于位图

0 file-type ada ppm

我在Internet上找到的代码有问题,我想制作一个位图,程序说:

程序放PPM(File:File_Type; Picture:Image)是

但是当我在main中调用该过程时,我不知道我应该在第一个参数中添加什么,一个带有名称的字符串,扩展名还是什么?

我希望你能帮帮我 :)

Sim*_*ght 6

我很相信你的代码来自Rosetta Code.

这开始了

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;
Run Code Online (Sandbox Code Playgroud)

并且File_Type在定义Ada.Streams.Stream_IO(ARM A.12.2).

您的主程序需要声明一个类型的变量Ada.Streams.Stream_IO.File_Type,创建该文件,并将其传递给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;
Run Code Online (Sandbox Code Playgroud)

(这不涉及从命令行获取参数,处理foo.ppm已存在的情况等等).

Ada意味着很容易(-ish)阅读,代价是花费更多的努力来编写它,以及拯救像你我这样的读者的标准方法,不知道声明的地方是避免'use'条款(at最少)规格.所以Rosetta的例子会写得更好

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;
Run Code Online (Sandbox Code Playgroud)

(同样如此Image).