将unbounded_Strings添加到枚举ada

时间:2015-05-12 09:14:20

标签: string enums ada

我对编程很新,Ada我不得不说,所以我不知道这是一件容易的事情,我试着用Google搜索并搜索这个网站,但我无法真正找到它!

我想在枚举中添加一个字符串数组(或者enum_def不确切知道它是什么)

首先我有

name_type is (name1, name2, name3, name4, name5, etc)

我用这个做了我的事情

但是现在我想用unbounded_strings数组来填充这个name_type(因此没有任何内容,可能是1个起始名称),所以我逐个添加unbounded_strings。

所以事情会是这样的:

name_type is ()
ustring_array is array (1 .. 50) of Unbounded_String;

for I in 1 .. 8 loop
    ustring_array (I) := "Get_Name"  --  i get this name from somewhere
end loop;

fill name_type with strings from ustring_array (not code, I don't know how to do this part )

所以ustring_array看起来像(" name1"," name2"," name3"等) 我希望name_type看起来像(name1,name2,name3等),这样它们就是单独的部分而不是字符串

这样我的name_type的大小由ustring_array

中的字符串数定义

这可能还是我要求不可能的事?

2 个答案:

答案 0 :(得分:0)

如果您使用the part中的枚举类型阅读与IO相关联的ARM,您会发现或多或少的答案。

还有一个使用Image属性的解决方案,如here所述。

答案 1 :(得分:0)

听起来,基本上,你在询问有关扩展枚举的问题。这是不可能的,但是可以定义一个将枚举映射到Unbounded_String的数组:

Type Directions is (Up, Down, Left, Right);


-- Assuming "+" renames of the string to unbounded string.
Direction_Text : Constant Array (Directions) of Unbounded_String :=
( Up => +"Upwards",
  Down => +"Downwards",
  Left => +"Port",
  Right => +"Starboard"
);

还有一个新容器Ada.Containers.Indefinite_Holders,它可以用作数组中的一个元素来保存不受约束的字符串。