With Ada.Text_IO; Use Ada.Text_IO;
With Ada.Strings.Fixed;
with Ada.Containers.Indefinite_Vectors;
procedure Test is
package Vectors is new Ada.Containers.Indefinite_Vectors(Positive, String);
subtype String_List is Vectors.Vector;
function Split(Line : String) return String_List is
Result : String_List;
First : Positive := Line'First;
Last : Natural;
begin
loop
Last := Ada.Strings.Fixed.Index(Line(First..Line'Last), ",");
exit when Last = 0;
Result.Append(Line(First .. Last - 1)); -- Append the item
First := Last + 1; -- set to index after comma
end loop;
Result.Append(Line(First .. Line'Last)); -- Append the last item
return Result;
end Split;
Items : constant String_List := Split(Get_Line);
begin
for Item of Items loop
Put_Line(Item);
end loop;
Put_Line("2nd item is " & Items(2));
end Test;
V2l0aCBBZGEuVGV4dF9JTzsgVXNlIEFkYS5UZXh0X0lPOyAgCldpdGggQWRhLlN0cmluZ3MuRml4ZWQ7CndpdGggQWRhLkNvbnRhaW5lcnMuSW5kZWZpbml0ZV9WZWN0b3JzOwoKcHJvY2VkdXJlIFRlc3QgaXMKCXBhY2thZ2UgVmVjdG9ycyBpcyBuZXcgQWRhLkNvbnRhaW5lcnMuSW5kZWZpbml0ZV9WZWN0b3JzKFBvc2l0aXZlLCBTdHJpbmcpOwoJc3VidHlwZSBTdHJpbmdfTGlzdCBpcyBWZWN0b3JzLlZlY3RvcjsKCQoJZnVuY3Rpb24gU3BsaXQoTGluZSA6IFN0cmluZykgcmV0dXJuIFN0cmluZ19MaXN0IGlzCgkJUmVzdWx0IDogU3RyaW5nX0xpc3Q7CgkJRmlyc3QgOiBQb3NpdGl2ZSA6PSBMaW5lJ0ZpcnN0OwoJCUxhc3QgIDogTmF0dXJhbDsKCWJlZ2luCgkJbG9vcAoJCQlMYXN0IDo9IEFkYS5TdHJpbmdzLkZpeGVkLkluZGV4KExpbmUoRmlyc3QuLkxpbmUnTGFzdCksICIsIik7CgkJCWV4aXQgd2hlbiBMYXN0ID0gMDsKCQkJUmVzdWx0LkFwcGVuZChMaW5lKEZpcnN0IC4uIExhc3QgLSAxKSk7ICAtLSBBcHBlbmQgdGhlIGl0ZW0KCQkJRmlyc3QgOj0gTGFzdCArIDE7IC0tIHNldCB0byBpbmRleCBhZnRlciBjb21tYQoJCWVuZCBsb29wOwoJCVJlc3VsdC5BcHBlbmQoTGluZShGaXJzdCAuLiBMaW5lJ0xhc3QpKTsgIC0tIEFwcGVuZCB0aGUgbGFzdCBpdGVtIAoJCXJldHVybiBSZXN1bHQ7CgllbmQgU3BsaXQ7CgkKCUl0ZW1zIDogY29uc3RhbnQgU3RyaW5nX0xpc3QgOj0gU3BsaXQoR2V0X0xpbmUpOwpiZWdpbgoJZm9yIEl0ZW0gb2YgSXRlbXMgbG9vcAoJCVB1dF9MaW5lKEl0ZW0pOwoJZW5kIGxvb3A7CgkKCVB1dF9MaW5lKCIybmQgaXRlbSBpcyAiICYgSXRlbXMoMikpOwplbmQgVGVzdDs=