Code:
'---------------------------------------------------------------------------- ' Convert a file to MIME text (Base64 Encoded) for PB/DLL or PB/CC ' by Dave Navarro ([email protected]) ' FUNCTION FileToMIME(InFile AS ASCIIZ, OutFile AS ASCIIZ) AS LONG LOCAL Enc AS STRING * 64 LOCAL b AS ASCIIZ * 4 LOCAL InBuff AS STRING LOCAL OutBuff AS STRING LOCAL i AS LONG Enc = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" OPEN InFile FOR BINARY AS #1 OPEN OutFile FOR OUTPUT AS #2 PRINT# 2, "MIME-Version: 1.0" PRINT# 2, "Content-Type: application/octet-stream; name=" + InFile PRINT# 2, "Content-transfer-encoding: base64" PRINT# 2, "" WHILE NOT EOF(1) GET$ 1, 57, InBuff OutBuff = "" WHILE LEN(InBuff) b = LEFT$(InBuff, 3) ! mov AL, b[0] ! shr AL, 2 ! movzx i, AL OutBuff = OutBuff + MID$(Enc, i+1, 1) ! mov AL, b[1] ! mov AH, b[0] ! shr AX, 4 ! and AL, &H3F ! movzx i, AL OutBuff = OutBuff + MID$(Enc, i+1, 1) IF LEN(InBuff) = 1 THEN OutBuff = OutBuff + "==" EXIT DO END IF ! mov AL, b[2] ! mov AH, b[1] ! shr AX, 6 ! and AL, &H3F ! movzx i, AL OutBuff = OutBuff + MID$(Enc, i+1, 1) IF LEN(InBuff) = 2 THEN OutBuff = OutBuff + "=" EXIT DO END IF ! mov AL, b[2] ! and AL, &H3F ! movzx i, AL OutBuff = OutBuff + MID$(Enc, i+1, 1) InBuff = MID$(InBuff, 4) WEND PRINT#2, OutBuff WEND CLOSE END FUNCTION
Comment