Visual Basic - ALGUIEN ME PUEDE AYUDAR CON ESTA RUTINA

Life is soft - evento anual de software empresarial
 
Vista:

ALGUIEN ME PUEDE AYUDAR CON ESTA RUTINA

Publicado por Franco (4 intervenciones) el 31/03/2015 04:09:52
Hola no es mi fuerta la programacion, pero a lo mejor aca alguien me puede dar una manito.

Necesito utilizar esta rutina que convierte una imagen codificada a base64 para poder ser enviada en un correo

bien mi proyecto toma una variable con la imagen a codificar. seria algo asi esta es la funcion yo necesito que pueda tomar esta variable que trae desde mi programa la imagen a codificar algo asi seria....


dim Imagen_codificar
Imagen_Codificar = publication.nbGetVar( "[Imagen_codificar]" ) ---- aca traigo la imagen
ahora es cuando se me queman los papeles como puedo resolver para que esta variable la tome la funcion la
transforme en una imagen codificada a base64 y me la devuelva en la siguiente variable:


publication.nbSetVar "[resultado_codificado]"; en esta variable me devuelve la imagen codificada en mi programa...

Por favor agradecere infinitamente una ayuda gracias

a continuacion la funcion....



Function Base64Encode(inData)
'rfc1521
'2001 Antonin Foller, Motobit Software, http://Motobit.cz
Const Base64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
Dim cOut, sOut, I

'For each group of 3 bytes
For I = 1 To Len(inData) Step 3
Dim nGroup, pOut, sGroup

'Create one long from this 3 bytes.
nGroup = &H10000 * Asc(Mid(inData, I, 1)) + _
&H100 * MyASC(Mid(inData, I + 1, 1)) + MyASC(Mid(inData, I + 2, 1))

'Oct splits the long To 8 groups with 3 bits
nGroup = Oct(nGroup)

'Add leading zeros
nGroup = String(8 - Len(nGroup), "0") & nGroup

'Convert To base64
pOut = Mid(Base64, CLng("&o" & Mid(nGroup, 1, 2)) + 1, 1) + _
Mid(Base64, CLng("&o" & Mid(nGroup, 3, 2)) + 1, 1) + _
Mid(Base64, CLng("&o" & Mid(nGroup, 5, 2)) + 1, 1) + _
Mid(Base64, CLng("&o" & Mid(nGroup, 7, 2)) + 1, 1)

'Add the part To OutPut string
sOut = sOut + pOut

'Add a new line For Each 76 chars In dest (76*3/4 = 57)
'If (I + 2) Mod 57 = 0 Then sOut = sOut + vbCrLf
Next
Select Case Len(inData) Mod 3
Case 1: '8 bit final
sOut = Left(sOut, Len(sOut) - 2) + "=="
Case 2: '16 bit final
sOut = Left(sOut, Len(sOut) - 1) + "="
End Select
Base64Encode = sOut
End Function

Function MyASC(OneChar)
If OneChar = "" Then MyASC = 0 Else MyASC = Asc(OneChar)
End Function
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder