小编Ima*_*man的帖子

Ada中的字符串处理

我正在尝试在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)

string ada

2
推荐指数
1
解决办法
1132
查看次数

在 ADA 中实例化任务

我需要在 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)

提前致谢。

ada parameterized task

0
推荐指数
1
解决办法
900
查看次数

标签 统计

ada ×2

parameterized ×1

string ×1

task ×1