[Webinar] Streamline your web hosting managementRegister Today

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1418
  • Last Modified:

Downgrade FromBase64String from vb.net to vb6

      I have a .Net example application that uses FromBase64String which I need to convert one function from and place in my legacy VB6 application, but I have been unable to find equivenent code.  The function accepts strdata as a string, decodes it from base64 and saves it as a bmp file.  Can anyone tell me how to accomplish this in VB6????

This is the whole code of the function.
       
    Private Sub SaveImageData(ByVal sigdata As String)

        Dim b() As Byte = Convert.FromBase64String(strdata)
        Dim fs As IO.FileStream = IO.File.Create("C:\temp.bmp")
        fs.Write(b, 0, b.Length)
        fs.Close()

0
FNDAdmin
Asked:
FNDAdmin
1 Solution
 
ZhaolaiCommented:
The following link should be helpful:

http://www.nonhostile.com/howto-encode-decode-base64-vb6.asp

0
 
GMGeniusCommented:
Here is a link to a sample class you could use
Use the DecodeToByteArray and save the byte array to file
http://www.mcmillan.org.nz/paradoxes/code/base64.html
I hope this helps
0
 
nffvrxqgrcfqvvcCommented:
You can also use the cryptography API

Option Explicit
'egl1044
'WinXP or later
Private Const CRYPT_STRING_BASE64 As Long = &H1&

Private Declare Function CryptStringToBinaryW Lib "Crypt32.dll" ( _
  ByVal pszString As Long, _
  ByVal cchString As Long, _
  ByVal dwFlags As Long, _
  ByVal pbBinary As Long, _
  ByRef pcbBinary As Long, _
  ByVal pdwSkip As Long, _
  ByVal pdwFlags As Long) As Long

Public Function FromBase64String(ByVal data As String) As Byte()
  Dim Buffer() As Byte
  Dim dwBinaryBytes As Long
  dwBinaryBytes = LenB(data)
  ReDim Buffer(dwBinaryBytes - 1) As Byte
  If CryptStringToBinaryW(StrPtr(data), LenB(data), CRYPT_STRING_BASE64, _
    VarPtr(Buffer(0)), dwBinaryBytes, 0, 0) Then
    ReDim Preserve Buffer(dwBinaryBytes - 1) As Byte
    FromBase64String = Buffer
  End If
  Erase Buffer
End Function

Private Sub Form_Load()
  Dim image() As Byte
  image() = FromBase64String("c3VyZS4=") 'sure.
  Debug.Print StrConv(image, vbUnicode)
End Sub

Open in new window

0
 
FNDAdminAuthor Commented:
Thanks to everyone that posted solutions.  They all look like they shoudl work, but for some reason all three gave me a different decoded output, and only the XML was correct in my situation, I'm not exactly sure why.  Worked great though, thank you.
0

Featured Post

Take Control of Web Hosting For Your Clients

As a web developer or IT admin, successfully managing multiple client accounts can be challenging. In this webinar we will look at the tools provided by Media Temple and Plesk to make managing your clients’ hosting easier.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now