diff options
author | Jedidiah Barber <contact@jedbarber.id.au> | 2021-11-03 21:44:56 +1300 |
---|---|---|
committer | Jedidiah Barber <contact@jedbarber.id.au> | 2021-11-03 21:44:56 +1300 |
commit | 234ab7fdc0b78124285d13346647c77aa042b330 (patch) | |
tree | 6af72a2504b6865f7f4ba81dc22738d60026dc63 /src/csv.ads | |
parent | 3746ce4682daf46a6c6a0aa25fdbe189d261d5b7 (diff) |
CSV output now functional
Diffstat (limited to 'src/csv.ads')
-rw-r--r-- | src/csv.ads | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/src/csv.ads b/src/csv.ads new file mode 100644 index 0000000..cc1eef5 --- /dev/null +++ b/src/csv.ads @@ -0,0 +1,64 @@ + + +with + + Ada.Containers.Vectors, + Ada.Strings.Unbounded, + Ada.Text_IO; + + +generic + + Separator_Char : Character := ','; + Quote_Char : Character := '"'; + Escape_Char : Character := '\'; + +package CSV is + + + procedure Put_Cell + (File_Handle : in Ada.Text_IO.File_Type; + Data : in String); + + procedure Put_Cell + (File_Handle : in Ada.Text_IO.File_Type; + Data : in Ada.Strings.Unbounded.Unbounded_String); + + + generic + + type Vector_Index is range <>; + type Vector_Data is private; + + with package Data_Vectors is new Ada.Containers.Vectors (Vector_Index, Vector_Data); + + with function To_Unbounded_String + (Data : in Vector_Data) + return Ada.Strings.Unbounded.Unbounded_String is <>; + + procedure Put_Row + (File_Handle : in Ada.Text_IO.File_Type; + Cells : in Data_Vectors.Vector; + Quantity : in Positive); + + +private + + + package SU renames Ada.Strings.Unbounded; + + + function "+" + (S : in String) + return SU.Unbounded_String + renames SU.To_Unbounded_String; + + function "-" + (US : in SU.Unbounded_String) + return String + renames SU.To_String; + + +end CSV; + + |