comp.lang.ada
 help / color / mirror / Atom feed
From: Jeffrey Carter <spam@spam.com>
Subject: Re: reading a text file into a string
Date: Fri, 16 Jul 2004 01:23:24 GMT
Date: 2004-07-16T01:23:24+00:00	[thread overview]
Message-ID: <g6GJc.4365$Qu5.2229@newsread2.news.pas.earthlink.net> (raw)
In-Reply-To: <40f6bf21@dnews.tpgi.com.au>

zork wrote:

> while not end_of_file ( File ) loop
>     Get ( File, c );
>     append ( text, c );
> end loop;

This will work. As others have pointed out, Get skips line terminators. 
I'll assume you're not interested in them.

A "better" way to do this is to use Get_Line:

Line : String (1 .. Max);
Last : Natural;
...
Read : loop
    exit Read when End_Of_File (File);

    Get_Line (File => File, Item => Line, Last => Last);
    Append (Text, Line (1 .. Last) );
end loop Read;

Get_Line returns when the String (Line) is filled (in which case Last = 
Max) or a line terminator is encountered (in which case Last < Max), 
whichever comes first; if a line terminator is encountered, it is skipped.

You can also use a function such as PragmARC.Get_Line, which reads an 
entire line and skips the line terminator:

Read : loop
    exit Read when End_Of_File (File);

    Append (Text, PragmARC.Get_Line (File) );
end loop Read;

This is especially convenient if you want to add a special Character to 
indicate line terminators:

Append (Text, PragmARC.Get_Line (File) & EOT);

-- 
Jeff Carter
"The time has come to act, and act fast. I'm leaving."
Blazing Saddles
36




  parent reply	other threads:[~2004-07-16  1:23 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-07-15 17:27 reading a text file into a string zork
2004-07-15 17:49 ` Marius Amado Alves
2004-07-15 19:57   ` Nick Roberts
2004-07-15 17:59 ` Marius Amado Alves
2004-07-15 19:18   ` Nick Roberts
2004-07-15 19:18 ` Nick Roberts
2004-07-15 20:02   ` Nick Roberts
2004-07-16  1:23 ` Jeffrey Carter [this message]
2004-07-16  2:20 ` Steve
2004-07-16  2:26 ` Steve
2004-07-16 16:16   ` Jeffrey Carter
2004-07-16 17:45     ` Nick Roberts
2004-07-16 21:19   ` Randy Brukardt
2004-07-17  2:27     ` Robert I. Eachus
2004-07-17 11:31       ` Mats Weber
2004-07-17 15:52         ` Robert I. Eachus
2004-07-17 22:38           ` Jeffrey Carter
2004-07-18 13:44             ` zork
2004-07-19  8:07       ` Dale Stanbrough
2004-07-19  8:58         ` Martin Dowie
2004-07-21  0:17           ` Robert I. Eachus
2004-07-21 21:39             ` Randy Brukardt
2004-07-22 22:34               ` Robert I. Eachus
2004-07-23  0:49                 ` Randy Brukardt
2004-07-23 21:56                   ` Nick Roberts
2004-07-24  0:34                     ` tmoran
2004-07-24  1:16                       ` Nick Roberts
2004-07-24  1:42                     ` Randy Brukardt
2004-07-24 15:14                       ` Nick Roberts
2004-07-26 23:48                         ` Randy Brukardt
2004-07-27 12:08                           ` Nick Roberts
2004-07-27 23:24                             ` Robert I. Eachus
2004-07-29  0:55                               ` Randy Brukardt
2004-07-29  0:53                             ` Randy Brukardt
2004-07-29  7:25                               ` Martin Dowie
2004-07-29 20:08                               ` Robert I. Eachus
2004-07-30  0:14                                 ` tmoran
2004-07-24  2:56                   ` Robert I. Eachus
2004-07-19 11:51       ` Ada2005 (was " Peter Hermann
2004-07-19 12:51         ` Dmitry A. Kazakov
2004-07-19 13:01         ` Nick Roberts
2004-07-19 13:35           ` Martin Dowie
2004-07-19 17:22             ` Nick Roberts
2004-07-19 23:50           ` Randy Brukardt
replies disabled

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