From: "Vincent Smeets" <No@Spam.org>
Subject: Fill string with multiple lines from standard_input
Date: Wed, 14 Aug 2002 21:34:53 +0200
Date: 2002-08-14T21:34:53+02:00 [thread overview]
Message-ID: <ajebhb$ndl$01$1@news.t-online.com> (raw)
Hallo,
How can I fill a string with multiple lines from the standard_input? I want
to have all the characters read from the input till a end of file in a
string.
In C I can do it like this:
char buffer[1024];
ssize_t length;
length = read (1, buffer, sizeof (buffer));
if (length < 0) {
perror ("read");
exit (1);
}
I can do it with Get_Immediate:
Buffer : String (1 .. 1024);
Length : Natural;
Length := 0;
while not Ent_Of_File and Length < Buffer'Last loop
Length := Length + 1;
Get_Immediate (Buffer (Length));
end loop;
This works but is very slow with GNAT 3.13p on Windows 2000.
I haven't tried sequential IO, but that is also character by character. I
want something to read a buffer at once. I have been thinking about using
streams. Something like:
Buffer : String (1 .. 1024);
String'Read (
Text_IO.Text_Streams.Stream (Text_IO.Standard_Input),
Buffer);
But here I don't know how much of the Buffer has been filled.
The last non portable design is to use a pragma import for the C "read"
function. It will work but I don't like it because it isn't portable.
Is the a nice Ada95 way to do this?
next reply other threads:[~2002-08-14 19:34 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-08-14 19:34 Vincent Smeets [this message]
2002-08-14 20:37 ` Fill string with multiple lines from standard_input Stephen Leake
2002-08-15 17:57 ` Vincent Smeets
2002-08-15 20:47 ` Stephen Leake
2002-08-19 19:39 ` Vincent Smeets
2002-08-20 15:01 ` Stephen Leake
2002-08-20 18:26 ` Vincent Smeets
2002-08-20 19:46 ` tmoran
2002-08-21 12:50 ` Jean-Pierre Rosen
2002-08-21 19:19 ` Randy Brukardt
2002-08-25 0:34 ` AG
2002-08-21 14:37 ` Kevin Cline
2002-08-21 19:47 ` Robert Dewar
2002-08-22 7:40 ` Kevin Cline
2002-08-23 19:49 ` Peter Richtmyer
2002-08-22 20:36 ` Kevin Cline
2002-08-25 0:45 ` AG
2002-08-26 0:47 ` Kevin Cline
2002-08-15 2:30 ` SteveD
2002-08-15 18:02 ` Vincent Smeets
2002-08-16 0:25 ` Robert Dewar
2002-08-15 19:07 ` Vincent Smeets
2002-08-15 21:49 ` chris.danx
2002-08-16 19:30 ` Ted Dennison
2002-08-17 2:26 ` Randy Brukardt
2002-08-17 10:24 ` Robert Dewar
2002-08-19 13:40 ` Ted Dennison
2002-08-20 0:03 ` Robert Dewar
2002-08-16 17:33 ` Alexei Polkhanov
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox