Apagada docs

Aprendiendo a programar el pasado

Herramientas de usuario

Herramientas del sitio


es:basic:vba:base64decode

Base64Decode

Cuando hay que transmitir por internet una cadena larga que contiene (o puede contener) códigos de control (como espacios), símbolos especiales (como “&”) y caracteres de 8 o más bits, es habitual utilizar un formato, llamado “base64”, en el que todos los caracteres tienen 6 bits.

Este programa permite convertir “base64” en la codificación original.

base64decode3.bas
Attribute VB_Name = "Base64decode3"
'
' Decodifica base 64 / Decodifies base64 text
'
' Este es un proyecto VBA diseñado para ser usado de modo
' interativo desde el Editor de Visual Basic de una aplicación.
' Usa debug.print en lugar de cuadros de diálogo.
'
' This is a VBA project designed to be used interactively
' from VBA IDE. It uses debug.print instead of message boxes.
'
Function basedecode(b$)
    a$ = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
    salida$ = ""
    Dim mascara(4)
    Dim L As Long
    '12345678 12345678 12345678
    'aaaaaabb bbbbcccc ccdddddd
    ' [aaaaaa] [bb][bbbb] [cccc][cc] [dddddd]
 
    Dim I(4)
    For f = 1 To Len(b$) Step 4
        For g = 0 To 4
            X$ = Mid$(b$, f + g, 1)
            If X$ = "=" Then
                I(g) = 0
            Else
                I(g) = InStr(a$, X$) - 1
            End If
        Next g
            n1 = (I(0) And 63) * 4 + Int((I(1) And 48) / 16)
            n2 = (I(1) And 15) * 16 + (I(2) And 60) / 4
            n3 = ((I(2) And 3) * 64) + (I(3) And 63)
 
            salida$ = salida$ + Chr$(n1) + Chr$(n2) + Chr$(n3)
    Next
    basedecode = salida$
End Function
 
Function bin$(a)
    b$ = ""
 
    For f = 0 To 8
        If (a And (2 ^ f)) Then
            b$ = "1" + b$
        Else
            b$ = "0" + b$
        End If
    Next
    bin$ = b$
End Function
 
Sub MostrarCodigosAscii()
    Dim char As Range
 
    For Each char In ActiveDocument.Characters()
        Debug.Print char
        If Len(char.Text) = 1 Then
            Debug.Print Asc(char.Text)
        Else
            Debug.Print
        End If
    Next
End Sub
Este sitio web utiliza cookies. Al utilizar el sitio web, usted acepta almacenar cookies en su computadora. También reconoce que ha leído y entendido nuestra Política de privacidad. Si no está de acuerdo abandone el sitio web.Más información
es/basic/vba/base64decode.txt · Última modificación: 2010/02/03 10:32 por nepenthes