在ada中使用insert?

时间:2010-06-15 10:49:14

标签: ada

任何人都可以告诉我在Ada语言中使用Insert。我试过网但我不能弄明白。如果有人能给我提供例子,那将是一个很大的帮助。

提前致谢 麦迪

1 个答案:

答案 0 :(得分:3)

我以前从未使用Insert(除了简单的Put_Line之外,我不需要做任何事情)所以将它们组合在一起:

with Ada.Strings.Fixed;
with Ada.Text_IO; use Ada.Text_IO;
procedure Inserting is
   Base : constant String := (1 .. 8 => ' ') & "aaaaaaaa" & (1 .. 8 => ' ');
begin
   Put_Line (ASCII.HT & '|' & Base & '|');
   for J in 1 .. 24 loop
      declare
         S : String := Base;
      begin
         Ada.Strings.Fixed.Insert (S,
                                   Before => J,
                                   New_Item => "ccc");
         Put_Line (Integer'Image (J) & ASCII.HT & '|' & S & '|');
      end;
   end loop;
end Inserting;

,输出

       |        aaaaaaaa        |
 1     |ccc        aaaaaaaa     |
 2     | ccc       aaaaaaaa     |
 3     |  ccc      aaaaaaaa     |
 4     |   ccc     aaaaaaaa     |
 5     |    ccc    aaaaaaaa     |
 6     |     ccc   aaaaaaaa     |
 7     |      ccc  aaaaaaaa     |
 8     |       ccc aaaaaaaa     |
 9     |        cccaaaaaaaa     |
 10    |        acccaaaaaaa     |
 11    |        aacccaaaaaa     |
 12    |        aaacccaaaaa     |
 13    |        aaaacccaaaa     |
 14    |        aaaaacccaaa     |
 15    |        aaaaaacccaa     |
 16    |        aaaaaaaccca     |
 17    |        aaaaaaaaccc     |
 18    |        aaaaaaaa ccc    |
 19    |        aaaaaaaa  ccc   |
 20    |        aaaaaaaa   ccc  |
 21    |        aaaaaaaa    ccc |
 22    |        aaaaaaaa     ccc|

raised ADA.STRINGS.LENGTH_ERROR : a-strfix.adb:358

我希望它具有一般的味道。

http://www.adaic.com/standards/95aarm/html/AA-A-4-3.html(3)的Ada95AARM A.4.3讲述了这背后的概念。