comp.lang.ada
 help / color / mirror / Atom feed
From: "Arie van Wingerden" <xapwing@gmail.com>
Subject: Re: Question on bounded / unbounded strings
Date: Wed, 14 Sep 2016 14:57:32 +0200
Date: 2016-09-14T14:57:32+02:00	[thread overview]
Message-ID: <nnd$16c1c321$1ecc3ab7@b08bfba8400d817c> (raw)
In-Reply-To: <nnd$12b05e33$1843543e@b46552de0b4781f4>

I finished the program.
It appears to be working correctly (only in Windows, because of the path 
separator).

Any comments to improve?

Code follows:
===========

with Ada.Text_Io;
with Ada.Environment_Variables;
with Ada.Strings.Fixed;
with Ada.Strings.Maps.Constants;

procedure Fip is

    package ATIO   renames Ada.Text_IO;
    package AEV    renames Ada.Environment_Variables;
    package ASF    renames Ada.Strings.Fixed;
    package ASMC renames Ada.Strings.Maps.Constants;

    Path   : string := ASF.Translate(AEV.Value("Path"), 
ASMC.Lower_Case_Map);
    Match : string := ASF.Translate(ATIO.Get_Line, ASMC.Lower_Case_Map);

    procedure FindMatch (Match : in string; Path : in string; StartPos : in 
positive; Len : in natural) is
        EndPos : positive;
    begin
        if Len > 0 then  -- Ignore case of an unnecessary semi colon
            EndPos := StartPos + Len - 1;
            if ASF.Index(Source => Path(StartPos .. EndPos), Pattern => 
Match) > 0 then
                ATIO.Put_Line(Path(StartPos .. EndPos));
            end if;
        end if;
    end FindMatch;

    procedure Match_Path (Match : in string; Path : in string) is
        StartPos : positive := 1;
        Len   : natural  := 0;
    begin
        for I in Path'Range loop
            if Path(I) = ';' then
                FindMatch(Match, Path, StartPos, Len);
                StartPos := I + 1;
                Len   := 0;
            else
                Len := Len + 1;
            end if;
        end loop;
    end Match_Path;

begin
    Match_Path(Match, Path);
    ATIO.Flush;
end Fip; 


  parent reply	other threads:[~2016-09-14 12:57 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-13  8:46 Question on bounded / unbounded strings Arie van Wingerden
2016-09-13  9:04 ` Dmitry A. Kazakov
2016-09-22  2:10   ` John Smith
2016-09-22  7:24     ` Dmitry A. Kazakov
2016-09-22  9:01       ` J-P. Rosen
2016-09-22  9:53         ` Dmitry A. Kazakov
2016-09-22 10:58           ` G.B.
2016-09-22 12:05             ` Dmitry A. Kazakov
2016-09-22 14:14               ` G.B.
2016-09-22 17:18                 ` Dmitry A. Kazakov
2016-09-22 11:08           ` J-P. Rosen
2016-09-22 12:05             ` Dmitry A. Kazakov
2016-09-22 13:18           ` Maciej Sobczak
2016-09-22 13:52             ` Dmitry A. Kazakov
2016-09-22 14:51               ` Maciej Sobczak
2016-09-22 17:13                 ` Dmitry A. Kazakov
2016-09-23  5:50                   ` Maciej Sobczak
2016-09-23  6:36                     ` Simon Wright
2016-09-23  7:48                       ` Dmitry A. Kazakov
2016-09-28 20:55                     ` Randy Brukardt
2016-09-23 23:58       ` John Smith
2016-09-24  7:52         ` Dmitry A. Kazakov
2016-09-24 16:25           ` John Smith
2016-09-24 17:44             ` Dmitry A. Kazakov
2016-09-24 18:33               ` John Smith
2016-09-24 18:37               ` John Smith
2016-09-24 18:59               ` John Smith
2016-09-25  8:50                 ` Dmitry A. Kazakov
2016-09-25 23:35                   ` brbarkstrom
2016-09-26  7:28                     ` Dmitry A. Kazakov
2016-09-26 12:39                       ` brbarkstrom
2016-09-28 21:09             ` Randy Brukardt
2016-09-30  7:59               ` Björn Lundin
2016-09-13  9:35 ` gautier_niouzes
2016-09-13 10:41 ` Alejandro R. Mosteo
2016-09-13 17:41 ` Jeffrey R. Carter
2016-09-13 17:59 ` Björn Lundin
2016-09-14 11:23 ` Arie van Wingerden
2016-09-14 12:26   ` Arie van Wingerden
2016-09-14 12:28   ` Arie van Wingerden
2016-09-14 12:57 ` Arie van Wingerden [this message]
2016-09-14 19:39   ` Jeffrey R. Carter
2016-09-17 16:35     ` Arie van Wingerden
2016-09-16 14:43 ` Olivier Henley
2016-09-17 16:35   ` Arie van Wingerden
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox