SCOUG Logo


Next Meeting: Sat, TBD
Meeting Directions


Be a Member
Join SCOUG

Navigation:


Help with Searching

20 Most Recent Documents
Search Archives
Index by date, title, author, category.


Features:

Mr. Know-It-All
Ink
Download!










SCOUG:

Home

Email Lists

SIGs (Internet, General Interest, Programming, Network, more..)

Online Chats

Business

Past Presentations

Credits

Submissions

Contact SCOUG

Copyright SCOUG



warp expowest
Pictures from Sept. 1999

The views expressed in articles on this site are those of their authors.

warptech
SCOUG was there!


Copyright 1998-2024, Southern California OS/2 User Group. ALL RIGHTS RESERVED.

SCOUG, Warp Expo West, and Warpfest are trademarks of the Southern California OS/2 User Group. OS/2, Workplace Shell, and IBM are registered trademarks of International Business Machines Corporation. All other trademarks remain the property of their respective owners.

The Southern California OS/2 User Group
USA

SCOUG-HELP Mailing List Archives

Return to [ 01 | October | 2003 ]

<< Previous Message << >> Next Message >>


Date: Wed, 1 Oct 2003 10:30:12 PDT7
From: "J. Pfisterer" <an479@lafn.org >
Reply-To: scoug-help@scoug.com
To: scoug-help@scoug.com
Subject: SCOUG-Help: base64 decode ?

Content Type: text/plain

=====================================================
If you are responding to someone asking for help who
may not be a member of this list, be sure to use the
REPLY TO ALL feature of your email program.
=====================================================

On Wed, 1 Oct 2003 09:37:31 PDT7, Peter Skye wrote:

>What utility can decode base64 text that does _not_ have a header?

Hi, Peter -

I use a pair of REXX utilities that seem to do it just fine:

DEBASE64.CMD - - - - - - - - - - -

/* Decodes a Base64 file. */
/* */
/* Written by James L. Dean */
char_set='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
DO n=0 to 127
t.n=-1
END
DO n=0 to 63
i=C2D(SUBSTR(char_set,n+1,1))
t.i=n
END
CALL CHAROUT,'Input? '
input_file_name=LINEIN()
CALL CHAROUT,'Output? '
output_file_name=LINEIN()
SAY 'Writing "'output_file_name'".'
CALL RxFuncAdd 'SysFileDelete','RexxUtil','SysFileDelete'
i=SysFileDelete(output_file_name)
input_line=''
input_line_index=81
input_eof=0
DO WHILE (input_eof = 0)
sextet_num=1
num_bits=0
DO WHILE(sextet_num <= 4)
DO WHILE((input_eof = 0) & (input_line_index > LENGTH(input_line)))
IF LINES(input_file_name) = 0 THEN
input_eof=-1
ELSE
DO
input_line=LINEIN(input_file_name)
input_line_index=1
END
END
IF input_eof = 0 THEN
DO
i=C2D(SUBSTR(input_line,input_line_index,1))
input_line_index=input_line_index+1
t1=t.i
IF t1 >= 0 THEN
DO
sextet.sextet_num=t1
num_bits=num_bits+6
sextet_num=sextet_num+1
END
END
ELSE
DO
sextet.sextet_num=0
sextet_num=sextet_num+1
END
END
IF num_bits >= 8 THEN
DO
t1=sextet.1
t2=sextet.2
CALL CHAROUT output_file_name,D2C(4*t1+t2%16)
num_bits=num_bits-8
END
IF num_bits >= 8 THEN
DO
t1=sextet.3
CALL CHAROUT output_file_name,D2C(16*(t2//16)+(t1%4))
num_bits=num_bits-8
END
IF num_bits >= 8 THEN
DO
t2=sextet.4
CALL CHAROUT output_file_name,D2C(64*(t1//4)+t2)
END
END

ENBASE64.CMD - - - - - - - - - - -

/* Encodes a file in Base64. */
/* */
/* Written by James L. Dean */
char_set='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
CALL CHAROUT,'Input? '
input_file_name=LINEIN()
CALL CHAROUT,'Output? '
output_file_name=LINEIN()
SAY 'Writing "'output_file_name'".'
CALL RxFuncAdd 'SysFileDelete','RexxUtil','SysFileDelete'
i=SysFileDelete(output_file_name)
input_eof=0
col_num=1
DO WHILE (input_eof = 0)
num_octets=0
triple=0
DO octet_num=1 TO 3
IF input_eof = 0 THEN
DO
octet=CHARIN(input_file_name)
IF LENGTH(octet) = 0 THEN
input_eof=-1
END
IF input_eof = 0 THEN
DO
triple=256*triple+C2D(octet)
num_octets=num_octets+1
END
ELSE
triple=256*triple
END
num_sextets=(8*num_octets)%6
IF 6*num_sextets < 8*num_octets THEN
num_sextets=num_sextets+1
IF num_sextets > 0 THEN
DO
sextet_num=1
DO WHILE(sextet_num <= 4)
quotient=triple%64
stack.sextet_num=triple-64*quotient
sextet_num=sextet_num+1
triple=quotient
END
DO WHILE(num_sextets >= 1)
sextet_num=sextet_num-1
rc=CHAROUT(output_file_name,SUBSTR(char_set,1+stack.sextet_num,1))
col_num=col_num+1
IF col_num > 76 THEN
DO
rc=CHAROUT(output_file_name,D2C(13))
rc=CHAROUT(output_file_name,D2C(10))
col_num=1
END
num_sextets=num_sextets-1
END
DO WHILE(sextet_num > 1)
rc=CHAROUT(output_file_name,'=')
col_num=col_num+1
IF col_num > 76 THEN
DO
rc=CHAROUT(output_file_name,D2C(13))
rc=CHAROUT(output_file_name,D2C(10))
col_num=1
END
sextet_num=sextet_num-1
END
END
END
IF col_num > 1 THEN
DO
rc=CHAROUT(output_file_name,D2C(13))
rc=CHAROUT(output_file_name,D2C(10))
END

- - - - - - - - - - - - - - -

=====================================================

To unsubscribe from this list, send an email message
to "steward@scoug.com". In the body of the message,
put the command "unsubscribe scoug-help".

For problems, contact the list owner at
"rollin@scoug.com".

=====================================================


<< Previous Message << >> Next Message >>

Return to [ 01 | October | 2003 ]



The Southern California OS/2 User Group
P.O. Box 26904
Santa Ana, CA 92799-6904, USA

Copyright 2001 the Southern California OS/2 User Group. ALL RIGHTS RESERVED.

SCOUG, Warp Expo West, and Warpfest are trademarks of the Southern California OS/2 User Group. OS/2, Workplace Shell, and IBM are registered trademarks of International Business Machines Corporation. All other trademarks remain the property of their respective owners.