472 lines
10 KiB
Ada
472 lines
10 KiB
Ada
with
|
|
ada.Characters.latin_1,
|
|
ada.Directories,
|
|
ada.Direct_IO,
|
|
ada.Text_IO;
|
|
|
|
|
|
package body lace.Text.forge
|
|
is
|
|
--------
|
|
-- Files
|
|
--
|
|
|
|
function File_to_String (Filename : in forge.Filename) return String
|
|
is
|
|
use ada.Characters,
|
|
ada.Directories;
|
|
|
|
Length : constant Natural := Natural (Size (String (Filename)));
|
|
|
|
subtype sized_String is String (1 .. Length);
|
|
|
|
package my_IO is new ada.Direct_IO (sized_String);
|
|
use my_IO;
|
|
|
|
the_File : my_IO.File_type;
|
|
Pad : sized_String;
|
|
Result : sized_String;
|
|
i : Natural := 0;
|
|
begin
|
|
if Length = 0
|
|
then
|
|
return "";
|
|
end if;
|
|
|
|
open (the_File, in_File, String (Filename));
|
|
read (the_File, Pad);
|
|
close (the_File);
|
|
|
|
for Each of Pad
|
|
loop
|
|
if Each /= latin_1.CR
|
|
then
|
|
i := i + 1;
|
|
Result (i) := Each;
|
|
end if;
|
|
end loop;
|
|
|
|
return Result (1 .. i);
|
|
end File_to_String;
|
|
|
|
|
|
|
|
function File_to_Text (Filename : in forge.Filename) return Item
|
|
is
|
|
begin
|
|
return to_Text (File_to_String (Filename));
|
|
end File_to_Text;
|
|
|
|
|
|
|
|
procedure store (Filename : in forge.Filename; the_String : in String)
|
|
is
|
|
use ada.Text_IO;
|
|
|
|
File : File_type;
|
|
begin
|
|
create (File, out_File, String (Filename));
|
|
put (File, the_String);
|
|
close (File);
|
|
end store;
|
|
|
|
|
|
|
|
--------------
|
|
-- Stock Items
|
|
--
|
|
|
|
function to_Text_1 (From : in String) return Item_1
|
|
is
|
|
begin
|
|
return to_Text (From, capacity => 1);
|
|
end to_Text_1;
|
|
|
|
function to_Text_1 (From : in Text.item) return Item_1
|
|
is
|
|
begin
|
|
return to_Text (to_String (From), capacity => 1);
|
|
end to_Text_1;
|
|
|
|
|
|
function to_Text_2 (From : in String) return Item_2
|
|
is
|
|
begin
|
|
return to_Text (From, capacity => 2);
|
|
end to_Text_2;
|
|
|
|
function to_Text_2 (From : in Text.item) return Item_2
|
|
is
|
|
begin
|
|
return to_Text (to_String (From), capacity => 2);
|
|
end to_Text_2;
|
|
|
|
|
|
function to_Text_4 (From : in String) return Item_4
|
|
is
|
|
begin
|
|
return to_Text (From, capacity => 4);
|
|
end to_Text_4;
|
|
|
|
function to_Text_4 (From : in Text.item) return Item_4
|
|
is
|
|
begin
|
|
return to_Text (to_String (From), capacity => 4);
|
|
end to_Text_4;
|
|
|
|
|
|
function to_Text_8 (From : in String) return Item_8
|
|
is
|
|
begin
|
|
return to_Text (From, capacity => 8);
|
|
end to_Text_8;
|
|
|
|
function to_Text_8 (From : in Text.item) return Item_8
|
|
is
|
|
begin
|
|
return to_Text (to_String (From), capacity => 8);
|
|
end to_Text_8;
|
|
|
|
|
|
function to_Text_16 (From : in String) return Item_16
|
|
is
|
|
begin
|
|
return to_Text (From, capacity => 16);
|
|
end to_Text_16;
|
|
|
|
function to_Text_16 (From : in Text.item) return Item_16
|
|
is
|
|
begin
|
|
return to_Text (to_String (From), capacity => 16);
|
|
end to_Text_16;
|
|
|
|
|
|
function to_Text_32 (From : in String) return Item_32
|
|
is
|
|
begin
|
|
return to_Text (From, capacity => 32);
|
|
end to_Text_32;
|
|
|
|
function to_Text_32 (From : in Text.item) return Item_32
|
|
is
|
|
begin
|
|
return to_Text (to_String (From), capacity => 32);
|
|
end to_Text_32;
|
|
|
|
|
|
function to_Text_64 (From : in String) return Item_64
|
|
is
|
|
begin
|
|
return to_Text (From, capacity => 64);
|
|
end to_Text_64;
|
|
|
|
function to_Text_64 (From : in Text.item) return Item_64
|
|
is
|
|
begin
|
|
return to_Text (to_String (From), capacity => 64);
|
|
end to_Text_64;
|
|
|
|
|
|
function to_Text_128 (From : in String) return Item_128
|
|
is
|
|
begin
|
|
return to_Text (From, capacity => 128);
|
|
end to_Text_128;
|
|
|
|
function to_Text_128 (From : in Text.item) return Item_128
|
|
is
|
|
begin
|
|
return to_Text (to_String (From), capacity => 128);
|
|
end to_Text_128;
|
|
|
|
|
|
function to_Text_256 (From : in String) return Item_256
|
|
is
|
|
begin
|
|
return to_Text (From, capacity => 256);
|
|
end to_Text_256;
|
|
|
|
function to_Text_256 (From : in Text.item) return Item_256
|
|
is
|
|
begin
|
|
return to_Text (to_String (From), capacity => 256);
|
|
end to_Text_256;
|
|
|
|
|
|
function to_Text_512 (From : in String) return Item_512
|
|
is
|
|
begin
|
|
return to_Text (From, capacity => 512);
|
|
end to_Text_512;
|
|
|
|
function to_Text_512 (From : in Text.item) return Item_512
|
|
is
|
|
begin
|
|
return to_Text (to_String (From), capacity => 512);
|
|
end to_Text_512;
|
|
|
|
|
|
|
|
function to_Text_1k (From : in String) return Item_1k
|
|
is
|
|
begin
|
|
return to_Text (From, capacity => 1024);
|
|
end to_Text_1k;
|
|
|
|
function to_Text_1k (From : in Text.item) return Item_1k
|
|
is
|
|
begin
|
|
return to_Text (to_String (From), capacity => 1024);
|
|
end to_Text_1k;
|
|
|
|
|
|
function to_Text_2k (From : in String) return Item_2k
|
|
is
|
|
begin
|
|
return to_Text (From, capacity => 2 * 1024);
|
|
end to_Text_2k;
|
|
|
|
function to_Text_2k (From : in Text.item) return Item_2k
|
|
is
|
|
begin
|
|
return to_Text (to_String (From), capacity => 2 * 1024);
|
|
end to_Text_2k;
|
|
|
|
|
|
function to_Text_4k (From : in String) return Item_4k
|
|
is
|
|
begin
|
|
return to_Text (From, capacity => 4 * 1024);
|
|
end to_Text_4k;
|
|
|
|
function to_Text_4k (From : in Text.item) return Item_4k
|
|
is
|
|
begin
|
|
return to_Text (to_String (From), capacity => 4 * 1024);
|
|
end to_Text_4k;
|
|
|
|
|
|
function to_Text_8k (From : in String) return Item_8k
|
|
is
|
|
begin
|
|
return to_Text (From, capacity => 8 * 1024);
|
|
end to_Text_8k;
|
|
|
|
function to_Text_8k (From : in Text.item) return Item_8k
|
|
is
|
|
begin
|
|
return to_Text (to_String (From), capacity => 8 * 1024);
|
|
end to_Text_8k;
|
|
|
|
|
|
function to_Text_16k (From : in String) return Item_16k
|
|
is
|
|
begin
|
|
return to_Text (From, capacity => 16 * 1024);
|
|
end to_Text_16k;
|
|
|
|
function to_Text_16k (From : in Text.item) return Item_16k
|
|
is
|
|
begin
|
|
return to_Text (to_String (From), capacity => 16 * 1024);
|
|
end to_Text_16k;
|
|
|
|
|
|
function to_Text_32k (From : in String) return Item_32k
|
|
is
|
|
begin
|
|
return to_Text (From, capacity => 32 * 1024);
|
|
end to_Text_32k;
|
|
|
|
function to_Text_32k (From : in Text.item) return Item_32k
|
|
is
|
|
begin
|
|
return to_Text (to_String (From), capacity => 32 * 1024);
|
|
end to_Text_32k;
|
|
|
|
|
|
function to_Text_64k (From : in String) return Item_64k
|
|
is
|
|
begin
|
|
return to_Text (From, capacity => 64 * 1024);
|
|
end to_Text_64k;
|
|
|
|
function to_Text_64k (From : in Text.item) return Item_64k
|
|
is
|
|
begin
|
|
return to_Text (to_String (From), capacity => 64 * 1024);
|
|
end to_Text_64k;
|
|
|
|
|
|
function to_Text_128k (From : in String) return Item_128k
|
|
is
|
|
begin
|
|
return to_Text (From, capacity => 128 * 1024);
|
|
end to_Text_128k;
|
|
|
|
function to_Text_128k (From : in Text.item) return Item_128k
|
|
is
|
|
begin
|
|
return to_Text (to_String (From), capacity => 128 * 1024);
|
|
end to_Text_128k;
|
|
|
|
|
|
function to_Text_256k (From : in String) return Item_256k
|
|
is
|
|
begin
|
|
return to_Text (From, capacity => 256 * 1024);
|
|
end to_Text_256k;
|
|
|
|
function to_Text_256k (From : in Text.item) return Item_256k
|
|
is
|
|
begin
|
|
return to_Text (to_String (From), capacity => 256 * 1024);
|
|
end to_Text_256k;
|
|
|
|
|
|
function to_Text_512k (From : in String) return Item_512k
|
|
is
|
|
begin
|
|
return to_Text (From, capacity => 512 * 1024);
|
|
end to_Text_512k;
|
|
|
|
function to_Text_512k (From : in Text.item) return Item_512k
|
|
is
|
|
begin
|
|
return to_Text (to_String (From), capacity => 512 * 1024);
|
|
end to_Text_512k;
|
|
|
|
|
|
|
|
function to_Text_1m (From : in String) return Item_1m
|
|
is
|
|
begin
|
|
return to_Text (From, capacity => 1024 * 1024);
|
|
end to_Text_1m;
|
|
|
|
function to_Text_1m (From : in Text.item) return Item_1m
|
|
is
|
|
begin
|
|
return to_Text (to_String (From), capacity => 1024 * 1024);
|
|
end to_Text_1m;
|
|
|
|
|
|
function to_Text_2m (From : in String) return Item_2m
|
|
is
|
|
begin
|
|
return to_Text (From, capacity => 2 * 1024 * 1024);
|
|
end to_Text_2m;
|
|
|
|
function to_Text_2m (From : in Text.item) return Item_2m
|
|
is
|
|
begin
|
|
return to_Text (to_String (From), capacity => 2 * 1024 * 1024);
|
|
end to_Text_2m;
|
|
|
|
|
|
function to_Text_4m (From : in String) return Item_4m
|
|
is
|
|
begin
|
|
return to_Text (From, capacity => 4 * 1024 * 1024);
|
|
end to_Text_4m;
|
|
|
|
function to_Text_4m (From : in Text.item) return Item_4m
|
|
is
|
|
begin
|
|
return to_Text (to_String (From), capacity => 4 * 1024 * 1024);
|
|
end to_Text_4m;
|
|
|
|
|
|
function to_Text_8m (From : in String) return Item_8m
|
|
is
|
|
begin
|
|
return to_Text (From, capacity => 8 * 1024 * 1024);
|
|
end to_Text_8m;
|
|
|
|
function to_Text_8m (From : in Text.item) return Item_8m
|
|
is
|
|
begin
|
|
return to_Text (to_String (From), capacity => 8 * 1024 * 1024);
|
|
end to_Text_8m;
|
|
|
|
|
|
function to_Text_16m (From : in String) return Item_16m
|
|
is
|
|
begin
|
|
return to_Text (From, capacity => 16 * 1024 * 1024);
|
|
end to_Text_16m;
|
|
|
|
function to_Text_16m (From : in Text.item) return Item_16m
|
|
is
|
|
begin
|
|
return to_Text (to_String (From), capacity => 16 * 1024 * 1024);
|
|
end to_Text_16m;
|
|
|
|
|
|
function to_Text_32m (From : in String) return Item_32m
|
|
is
|
|
begin
|
|
return to_Text (From, capacity => 32 * 1024 * 1024);
|
|
end to_Text_32m;
|
|
|
|
function to_Text_32m (From : in Text.item) return Item_32m
|
|
is
|
|
begin
|
|
return to_Text (to_String (From), capacity => 32 * 1024 * 1024);
|
|
end to_Text_32m;
|
|
|
|
|
|
function to_Text_64m (From : in String) return Item_64m
|
|
is
|
|
begin
|
|
return to_Text (From, capacity => 64 * 1024 * 1024);
|
|
end to_Text_64m;
|
|
|
|
function to_Text_64m (From : in Text.item) return Item_64m
|
|
is
|
|
begin
|
|
return to_Text (to_String (From), capacity => 64 * 1024 * 1024);
|
|
end to_Text_64m;
|
|
|
|
|
|
function to_Text_128m (From : in String) return Item_128m
|
|
is
|
|
begin
|
|
return to_Text (From, capacity => 128 * 1024 * 1024);
|
|
end to_Text_128m;
|
|
|
|
function to_Text_128m (From : in Text.item) return Item_128m
|
|
is
|
|
begin
|
|
return to_Text (to_String (From), capacity => 128 * 1024 * 1024);
|
|
end to_Text_128m;
|
|
|
|
|
|
function to_Text_256m (From : in String) return Item_256m
|
|
is
|
|
begin
|
|
return to_Text (From, capacity => 256 * 1024 * 1024);
|
|
end to_Text_256m;
|
|
|
|
function to_Text_256m (From : in Text.item) return Item_256m
|
|
is
|
|
begin
|
|
return to_Text (to_String (From), capacity => 256 * 1024 * 1024);
|
|
end to_Text_256m;
|
|
|
|
|
|
function to_Text_512m (From : in String) return Item_512m
|
|
is
|
|
begin
|
|
return to_Text (From, capacity => 512 * 1024 * 1024);
|
|
end to_Text_512m;
|
|
|
|
function to_Text_512m (From : in Text.item) return Item_512m
|
|
is
|
|
begin
|
|
return to_Text (to_String (From), capacity => 512 * 1024 * 1024);
|
|
end to_Text_512m;
|
|
|
|
|
|
end lace.Text.forge;
|