comp.lang.ada
 help / color / mirror / Atom feed
From: tmoran@acm.org
Subject: Re: conversion
Date: Fri, 27 Jun 2003 18:42:26 GMT
Date: 2003-06-27T18:42:26+00:00	[thread overview]
Message-ID: <me0La.35666$3d.19672@sccrnsc02> (raw)
In-Reply-To: 3EFC45BE.5030904@attbi.com

>Hmmm.  Where to begin.  You are thinking in C about Ada concepts.  That
>is confusing you because the Ada mappings are different.  In Ada, the
  As a general rule, if something seems inordinately hard to do in Ada,
you are probably not using Ada appropriately.  In the case of strings,
declaring dynamically sized strings, passing strings as dynamically sized
parameters, using concatenation, and, especially, using slices will handle
a great many string processing tasks.  eg,

  procedure Process_Line(Line : in String) is
  -- From "Fred Smith #12345; John Jones, Albert"
  -- make 2 calls on Process_First_Name
  --   Process_Full_Name("Smith, Fred");
  --   Process_Full_Name("Jones, John");
    First, Last : Natural;
  begin
    First := Line'first;
    loop
      Ada.Strings.Fixed.Find_Token
           (Source=>Line(First .. Line'last),
            Set   =>Ada.Strings.Maps.Constants.Letter_Set,
            Test  =>Ada.Strings.Inside,
            First =>First,
            Last  =>Last);
      exit when Last = 0;
      declare
        use Ada.Strings;
        use Ada.Strings.Maps.Constants;
        First_Name : String renames Line(First .. Last);
      begin
        Fixed.Find_Token(Line(Last+1 .. Line'last), Letter_Set, Inside,
                         First, Last);
        exit when Last = 0;
        Process_Full_Name(Line(First .. Last) & ", " & First_Name);
      end;
      First := Last+1;
    end loop;
  end Process_Line;
  ...
  Line : String(1 .. 80);
  Last : Natural;
  ...
  Ada.Text_IO.Get_Line(Input, Line, Last);
  Process_Line(Line(Line'first .. Last));



  reply	other threads:[~2003-06-27 18:42 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-06-27 10:51 conversion Andrew
2003-06-27 12:22 ` conversion Dmitry A. Kazakov
2003-06-27 12:37 ` conversion Stephen Leake
2003-06-27 14:26   ` conversion Bill Findlay
2003-06-27 17:04     ` conversion Georg Bauhaus
2003-07-04  0:21     ` conversion Dave Thompson
2003-06-27 13:25 ` conversion Robert I. Eachus
2003-06-27 18:42   ` tmoran [this message]
2003-06-27 14:49 ` conversion Matthew Heaney
2003-06-27 17:10 ` conversion Georg Bauhaus
2003-06-27 17:13 ` conversion Alexander Kopilovitch
2003-06-27 17:34   ` conversion Preben Randhol
2003-06-27 22:10     ` conversion Alexander Kopilovitch
2003-06-28  9:46       ` conversion Preben Randhol
2003-06-27 22:13   ` conversion Robert I. Eachus
2003-06-30  8:52     ` conversion Dmitry A. Kazakov
2003-07-03  7:03       ` conversion Robert I. Eachus
2003-07-09  7:42         ` conversion Dmitry A. Kazakov
2003-07-09 17:04           ` conversion Robert I. Eachus
2003-07-10 10:19             ` conversion Dmitry A. Kazakov
2003-07-11  1:56               ` conversion Alexander Kopilovitch
2003-07-05  2:40     ` conversion Alexander Kopilovitch
2003-07-05  6:33       ` conversion Georg Bauhaus
2003-07-05 17:06         ` conversion Alexander Kopilovitch
2003-07-06  3:53           ` conversion Robert I. Eachus
2003-07-06  5:13             ` conversion Jeffrey Carter
2003-07-06 12:45               ` conversion Chad R. Meiners
2003-07-07  1:09             ` conversion Alexander Kopilovitch
2003-07-06 20:04           ` conversion Georg Bauhaus
2003-07-07 14:55             ` conversion Stephen Leake
2003-07-07 21:36               ` conversion Alexander Kopilovitch
     [not found] <002701c33e22$8e9deaf0$0201a8c0@win>
2003-06-29 20:15 ` conversion David C. Hoos, Sr.
  -- strict thread matches above, loose matches on Subject: below --
2003-06-29  9:41 conversion Andrew
2003-07-04 10:42 ` conversion Janeit
2003-06-28  8:46 conversion Andrew
2003-06-28  9:49 ` conversion Preben Randhol
2003-06-30 14:08 ` conversion Stephen Leake
2003-06-27 17:37 conversion Andrew
2003-06-27 17:32 ` conversion Stephen Leake
2003-06-28  2:55 ` conversion Jeffrey Carter
1998-07-22  0:00 conversion Rick
1998-07-22  0:00 ` conversion Richard Toy
1998-07-22  0:00 ` conversion Corey Ashford
1998-07-22  0:00   ` conversion Corey Ashford
replies disabled

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