DocAda(tm) is a productivity tool of KSCE
|
|
|
|
About DocAda Light:
Preface / Preliminary
/ Help
/ TOC
/ Copyright
DocAda Online at the Ada Home:
Complete RM95
/ Updates
/ News
The language-defined package Strings.Fixed provides string-handling subprograms for fixed-length strings; that is, for values of type Standard.String. Several of these subprograms are procedures that modify the contents of a String that is passed as an out or an in out parameter; each has additional parameters to control the effect when the logical length of the result differs from the parameter's length.
For each function that returns a String, the lower bound of the returned value is 1.
The basic model embodied in the package is that a fixed-length string comprises significant characters and possibly padding (with space characters) on either or both ends. When a shorter string is copied to a longer string, padding is inserted, and when a longer string is copied to a shorter one, padding is stripped. The Move procedure in Strings.Fixed, which takes a String as an out parameter, allows the programmer to control these effects. Similar control is provided by the string transformation procedures.
Static Semantics
The library package Strings.Fixed has the following declaration:
with Ada.Strings.Maps; package Ada.Strings.Fixed is pragma Preelaborate(Fixed); -- "Copy" procedure for strings of possibly different lengths procedure Move (Source : in String; Target : out String; Drop : in Truncation := Error; Justify : in Alignment := Left; Pad : in Character := Space); -- Search subprograms function Index (Source : in String; Pattern : in String; Going : in Direction := Forward; Mapping : in Maps.Character_Mapping := Maps.Identity) return Natural; function Index (Source : in String; Pattern : in String; Going : in Direction := Forward; Mapping : in Maps.Character_Mapping_Function) return Natural; function Index (Source : in String; Set : in Maps.Character_Set; Test : in Membership := Inside; Going : in Direction := Forward) return Natural; function Index_Non_Blank (Source : in String; Going : in Direction := Forward) return Natural; function Count (Source : in String; Pattern : in String; Mapping : in Maps.Character_Mapping := Maps.Identity) return Natural; function Count (Source : in String; Pattern : in String; Mapping : in Maps.Character_Mapping_Function) return Natural; function Count (Source : in String; Set : in Maps.Character_Set) return Natural; procedure Find_Token (Source : in String; Set : in Maps.Character_Set; Test : in Membership; First : out Positive; Last : out Natural); -- String translation subprograms function Translate (Source : in String; Mapping : in Maps.Character_Mapping) return String; procedure Translate (Source : in out String; Mapping : in Maps.Character_Mapping); function Translate (Source : in String; Mapping : in Maps.Character_Mapping_Function) return String; procedure Translate (Source : in out String; Mapping : in Maps.Character_Mapping_Function); -- String transformation subprograms function Replace_Slice (Source : in String; Low : in Positive; High : in Natural; By : in String) return String; procedure Replace_Slice (Source : in out String; Low : in Positive; High : in Natural; By : in String; Drop : in Truncation := Error; Justify : in Alignment := Left; Pad : in Character := Space); function Insert (Source : in String; Before : in Positive; New_Item : in String) return String; procedure Insert (Source : in out String; Before : in Positive; New_Item : in String; Drop : in Truncation := Error); function Overwrite (Source : in String; Position : in Positive; New_Item : in String) return String; procedure Overwrite (Source : in out String; Position : in Positive; New_Item : in String; Drop : in Truncation := Right); function Delete (Source : in String; From : in Positive; Through : in Natural) return String; procedure Delete (Source : in out String; From : in Positive; Through : in Natural; Justify : in Alignment := Left; Pad : in Character := Space); --String selector subprograms function Trim (Source : in String; Side : in Trim_End) return String; procedure Trim (Source : in out String; Side : in Trim_End; Justify : in Alignment := Left; Pad : in Character := Space); function Trim (Source : in String; Left : in Maps.Character_Set; Right : in Maps.Character_Set) return String; procedure Trim (Source : in out String; Left : in Maps.Character_Set; Right : in Maps.Character_Set; Justify : in Alignment := Strings.Left; Pad : in Character := Space); function Head (Source : in String; Count : in Natural; Pad : in Character := Space) return String; procedure Head (Source : in out String; Count : in Natural; Justify : in Alignment := Left; Pad : in Character := Space); function Tail (Source : in String; Count : in Natural; Pad : in Character := Space) return String; procedure Tail (Source : in out String; Count : in Natural; Justify : in Alignment := Left; Pad : in Character := Space); --String constructor functions function "*" (Left : in Natural; Right : in Character) return String; function "*" (Left : in Natural; Right : in String) return String; end Ada.Strings.Fixed;
The effects of the above subprograms are as follows.
procedure Move (Source : in String; Target : out String; Drop : in Truncation := Error; Justify : in Alignment := Left; Pad : in Character := Space);
function Index (Source : in String; Pattern : in String; Going : in Direction := Forward; Mapping : in Maps.Character_Mapping := Maps.Identity) return Natural; function Index (Source : in String; Pattern : in String; Going : in Direction := Forward; Mapping : in Maps.Character_Mapping_Function) return Natural;
function Index (Source : in String; Set : in Maps.Character_Set; Test : in Membership := Inside; Going : in Direction := Forward) return Natural;
function Index_Non_Blank (Source : in String; Going : in Direction := Forward) return Natural;
function Count (Source : in String; Pattern : in String; Mapping : in Maps.Character_Mapping := Maps.Identity) return Natural; function Count (Source : in String; Pattern : in String; Mapping : in Maps.Character_Mapping_Function) return Natural;
function Count (Source : in String; Set : in Maps.Character_Set) return Natural;
procedure Find_Token (Source : in String; Set : in Maps.Character_Set; Test : in Membership; First : out Positive; Last : out Natural);
function Translate (Source : in String; Mapping : in Maps.Character_Mapping) return String; function Translate (Source : in String; Mapping : in Maps.Character_Mapping_Function) return String;
procedure Translate (Source : in out String; Mapping : in Maps.Character_Mapping); procedure Translate (Source : in out String; Mapping : in Maps.Character_Mapping_Function);
function Replace_Slice (Source : in String; Low : in Positive; High : in Natural; By : in String) return String;
procedure Replace_Slice (Source : in out String; Low : in Positive; High : in Natural; By : in String; Drop : in Truncation := Error; Justify : in Alignment := Left; Pad : in Character := Space);
function Insert (Source : in String; Before : in Positive; New_Item : in String) return String;
procedure Insert (Source : in out String; Before : in Positive; New_Item : in String; Drop : in Truncation := Error);
function Overwrite (Source : in String; Position : in Positive; New_Item : in String) return String;
procedure Overwrite (Source : in out String; Position : in Positive; New_Item : in String; Drop : in Truncation := Right);
function Delete (Source : in String; From : in Positive; Through : in Natural) return String;
procedure Delete (Source : in out String; From : in Positive; Through : in Natural; Justify : in Alignment := Left; Pad : in Character := Space);
function Trim (Source : in String; Side : in Trim_End) return String;
procedure Trim (Source : in out String; Side : in Trim_End; Justify : in Alignment := Left; Pad : in Character := Space);
function Trim (Source : in String; Left : in Maps.Character_Set; Right : in Maps.Character_Set) return String;
procedure Trim (Source : in out String; Left : in Maps.Character_Set; Right : in Maps.Character_Set; Justify : in Alignment := Strings.Left; Pad : in Character := Space);
function Head (Source : in String; Count : in Natural; Pad : in Character := Space) return String;
procedure Head (Source : in out String; Count : in Natural; Justify : in Alignment := Left; Pad : in Character := Space);
function Tail (Source : in String; Count : in Natural; Pad : in Character := Space) return String;
procedure Tail (Source : in out String; Count : in Natural; Justify : in Alignment := Left; Pad : in Character := Space);
function "*" (Left : in Natural; Right : in Character) return String; function "*" (Left : in Natural; Right : in String) return String;
NOTES
About DocAda Light:
Preface / Preliminary
/ Help
/ TOC
/ Copyright
DocAda Online at the Ada Home:
Complete RM95
/ Updates
/ News
|
|
|
|