From: Darren New <dnew@san.rr.com>
Subject: Re: Ada and Internet stuff
Date: Wed, 29 Aug 2001 19:00:19 GMT
Date: 2001-08-29T19:00:19+00:00 [thread overview]
Message-ID: <3B8D3BC2.B3D9DBF6@san.rr.com> (raw)
In-Reply-To: pQaj7.28143$sa.14123276@news1.rdc1.sfba.home.com
> > Also, what's the mechanism for dealing with things like UTF-8?
> Base64 is specifically designed to work across various character
> encodings. Thus an 'A' means 6 bits of zeroes, regardless of how
> that 'A' is represented.
Actually, I think it's that ASCII 64 means 6 bits of zeros, but I'd have
to double-check the RFC specifically. :-) But I understand what you're
saying, that the text-io routines are responsible for mapping 'A' in the
source to 'A' in your input file.
> You *should* be able to replace String
> with Wide_String and Character with Wide_Character appropriately
> and have it work. Of course your 24 bits of input would then be
> 64, rather than 32 bits, encoded, for an expansion factor of 2.66,
> which would rather argue against it.
Sorry. That second question was kind of a non-sequitar. Not asking about
its relation to base64 as such, but in general about character encoding
problems. Like, if I were to deal with XML, how could I expect to handle
wide characters in the input stream?
> > -- Target'length must be at least:
> > -- Output_Quad_Count: constant := (Source'length + 2) / 3;
> > -- Output_Byte_Count: constant := 4 * Output_Quad_Count;
> > -- Target'length = Output_Byte_Count + 2 * (Output_Byte_Count / 76)
> >
> > This should be a function. :-) Probably, it would be best to have a
> > function that takes an input length and returns the output length in
> > both directions, so you can allocate your buffers properly before
> > calling the functions.
> Extra whitespace and missing line breaks are both allowed in encoded
> data, so you can't tell without looking at it, ie running the decoding,
> just what it will decode into.
True. But that might be useful anyway, even if inefficient.
> No such problem on encoding.
Yes.
> You could make
> function Encode(X : Stream_Element_Array) return String;
> function Decode(S : String) return Stream_Element_Array;
> and let them generate and return the correct size results. That's
> not terribly hard but is surely less speedy, which may matter.
I was fiddling around with variable length strings, and I thought I
understood but I apparently don't. What would I *do* with such a
returned result? There isn't a variable I could assign it to, is there?
The only thing I could do is to pass it to some other routine that takes
unconstrained strings as an in parameter, yes?
I thought I could do
declare
s : String;
begin
s := Encode(yadda);
end;
but that doesn't work. Bummer.
(Yes, as you can tell, I'm all the way up to "Hello World". :-)
--
Darren New
San Diego, CA, USA (PST). Cryptokeys on demand.
next prev parent reply other threads:[~2001-08-29 19:00 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-08-24 19:22 Ada and Internet stuff Darren New
2001-08-24 19:39 ` Ted Dennison
2001-08-24 20:30 ` Pascal Obry
2001-08-24 22:03 ` Ehud Lamm
2001-08-26 15:52 ` David Botton
2001-08-26 20:32 ` Pascal Obry
2001-08-27 1:40 ` David Botton
2001-08-27 6:31 ` Ehud Lamm
2001-08-24 20:32 ` Pascal Obry
2001-08-24 23:36 ` Darren New
2001-08-24 20:39 ` Larry Kilgallen
2001-08-24 22:08 ` Marc A. Criley
2001-08-25 7:07 ` Pascal Obry
2001-08-27 1:49 ` tmoran
2001-08-27 11:04 ` Tarjei T. Jensen
2001-08-27 11:28 ` Ehud Lamm
2001-08-27 20:09 ` Pascal Obry
2001-08-27 23:10 ` David Botton
2001-08-29 5:52 ` tmoran
2001-08-29 16:28 ` Darren New
2001-08-29 17:12 ` David Botton
2001-08-29 17:32 ` Ted Dennison
2001-08-29 18:51 ` tmoran
2001-08-29 19:00 ` Darren New [this message]
2001-08-29 19:53 ` tmoran
2001-08-29 20:03 ` Darren New
2001-08-29 20:08 ` Ted Dennison
2001-08-30 7:08 ` tmoran
2001-08-31 2:39 ` tmoran
2001-08-31 13:34 ` Ted Dennison
2001-08-31 13:46 ` Marin David Condic
2001-08-31 17:37 ` tmoran
2001-08-31 17:59 ` Marin David Condic
2001-09-01 17:56 ` tmoran
2001-08-31 13:34 ` Marin David Condic
2001-08-31 17:52 ` Ted Dennison
2001-08-31 18:09 ` Marin David Condic
2001-08-31 2:53 ` compile time Least Common Multiple, was " tmoran
2001-08-31 13:43 ` Ted Dennison
2001-08-31 17:37 ` tmoran
2001-08-31 18:08 ` Ted Dennison
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox