我正在尝试在Ada中定义一个字符串数组来存储可变大小的字符串.我遇到的问题是我必须预先定义我在编译时不知道的字符串的大小,并且使用Unbounded_Strings,String_Split.Create将不起作用,因为它需要Standard.String.
下面是我的代码,我需要能够解析可变大小的字符串,而不仅仅是固定长度4.
提前致谢.
type StrArray is array(1..7) of String(1..4);
function Split(Line : String;Sep : String) return StrArray is
Tokens : String_Split.Slice_Set;
Output : StrArray;
Count : Natural := 0;
begin
String_Split.Create(s => Tokens,
From => Line,
Separators => Sep,
Mode => String_Split.Single);
For I in 1 .. String_Split.Slice_Count (Tokens) loop
Count := Count + 1;
Output(Count) := String_Split.Slice(Tokens,I); -- Not sure how to convert Slice_Count to Integer either!
end loop;
return Output;
end Split;
Run Code Online (Sandbox Code Playgroud) 我需要在 Ada 中创建一个参数化任务,我得到的错误是:判别式必须具有离散或访问类型。
这是我的代码:
task type FEP_Con(Port_Num : Port_Name) is
entry Start;
end FEP_Con;
type FEP_Con_acc is access FEP_Con;
task body FEP_Con is
S_Port : Serial_Port;
Buffer : Ada.Streams.Stream_Element_Array(1..1024);
Last : Ada.Streams.Stream_Element_Offset;
Response_Str : Unbounded_String;
--cPort : Port_Name := "";
begin
accept Start;
Run Code Online (Sandbox Code Playgroud)
提前致谢。