POV-Ray : Newsgroups : povray.advanced-users : Binary file I/O? Server Time
29 Jul 2024 06:28:11 EDT (-0400)
  Binary file I/O? (Message 11 to 12 of 12)  
<<< Previous 10 Messages Goto Initial 10 Messages
From: Andrew Coppin
Subject: Re: Binary file I/O?
Date: 24 Apr 2003 15:41:33
Message: <3ea83ded$1@news.povray.org>
> > PS. Is uuencode and BASE-64 the same or different?
>
> Different.
>
>     Thorsten

Thanks.

Don't expect anyone to eloborate on this news group, but any chance of a
link to a suitable description? (I already know BASE-64, it's the other one
I'd like a link for.)

Becuase I'm curiouse.
Andrew.


Post a reply to this message

From: Warp
Subject: Re: Binary file I/O?
Date: 24 Apr 2003 20:06:57
Message: <3ea87c21@news.povray.org>
Andrew Coppin <orp### [at] btinternetcom> wrote:
> (I already know BASE-64, it's the other one
> I'd like a link for.)

  From the uuencode man page:

     The standard output is a text file (encoded in the character
     set of the current locale) that begins with the line:

          "begin%s%s\n", <mode>, decode_pathname

     and ends with the line:

          end\n

     In both cases, the lines have no preceding or trailing blank
     characters.

     The algorithm that is used for lines in  between  begin  and
     end  takes  three octets as input and writes four characters
     of output by splitting the input at six-bit  intervals  into
     four  octets,  containing  data  in the lower six bits only.
     These octets are converted to characters by adding  a  value
     of  0x20  to  each octet, so that each octet is in the range
     0x20-0x5f, and then it is assumed to represent  a  printable
     character. It then will be translated into the corresponding
     character codes for  the  codeset  in  use  in  the  current
     locale. (For example, the octet 0x41, representing A , would
     be translated to A in the current codeset, such as  0xc1  if
     it were EBCDIC.)

     Where the bits of two octets are combined, the least  signi-
     ficant bits of the first octet are shifted left and combined
     with the most significant bits of the second  octet  shifted
     right.  Thus the three octets A, B, C are converted into the
     four octets:

          0x20 + (( A >> 2                          ) & 0x3F)
          0x20 + (((A << 4)  ((B >> 4) & 0xF)) & 0x3F)
          0x20 + (((B << 2)  ((C >> 6) & 0x3)) & 0x3F)
          0x20 + (( C                                 ) & 0x3F)

     These octets are then translated into  the  local  character
     set.

     Each encoded line contains a length character, equal to  the
     number  of  characters to be decoded plus 0x20 translated to
     the local character set as described above, followed by  the
     encoded  characters.   The  maximum  number  of octets to be
     encoded on each line is 45.


-- 
#macro N(D)#if(D>99)cylinder{M()#local D=div(D,104);M().5,2pigment{rgb M()}}
N(D)#end#end#macro M()<mod(D,13)-6mod(div(D,13)8)-3,10>#end blob{
N(11117333955)N(4254934330)N(3900569407)N(7382340)N(3358)N(970)}//  - Warp -


Post a reply to this message

<<< Previous 10 Messages Goto Initial 10 Messages

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.