comp.lang.ada
 help / color / mirror / Atom feed
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.



  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