Data update
This commit is contained in:
parent
5150844a7d
commit
4bb20c9b71
7735 changed files with 38060 additions and 199180 deletions
|
|
@ -1,57 +0,0 @@
|
|||
with Ada.Text_Io;
|
||||
with Ada.Containers.Indefinite_Vectors;
|
||||
with Ada.Strings.Unbounded;
|
||||
|
||||
procedure Tokenize is
|
||||
|
||||
package String_Vectors is
|
||||
new Ada.Containers.Indefinite_Vectors (Positive, String);
|
||||
use String_Vectors;
|
||||
|
||||
function Split (Text : String;
|
||||
Separator : Character := '|';
|
||||
Escape : Character := '^') return Vector
|
||||
is
|
||||
use Ada.Strings.Unbounded;
|
||||
Result : Vector;
|
||||
Escaped : Boolean := False;
|
||||
Accu : Unbounded_String;
|
||||
begin
|
||||
|
||||
for Char of Text loop
|
||||
|
||||
case Escaped is
|
||||
|
||||
when False =>
|
||||
if Char = Escape then
|
||||
Escaped := True;
|
||||
elsif Char = Separator then
|
||||
Append (Result, To_String (Accu));
|
||||
Accu := Null_Unbounded_String;
|
||||
else
|
||||
Append (Accu, Char);
|
||||
end if;
|
||||
|
||||
when True =>
|
||||
Append (Accu, Char);
|
||||
Escaped := False;
|
||||
|
||||
end case;
|
||||
|
||||
end loop;
|
||||
Append (Result, To_String (Accu));
|
||||
|
||||
return Result;
|
||||
end Split;
|
||||
|
||||
procedure Put_Vector (List : Vector) is
|
||||
use Ada.Text_Io;
|
||||
begin
|
||||
for Element of List loop
|
||||
Put ("'"); Put (Element); Put ("'"); New_Line;
|
||||
end loop;
|
||||
end Put_Vector;
|
||||
|
||||
begin
|
||||
Put_Vector (Split ("one^|uno||three^^^^|four^^^|^cuatro|"));
|
||||
end Tokenize;
|
||||
Loading…
Add table
Add a link
Reference in a new issue