Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

Downgrade FromBase64String from vb.net to vb6

Posted on 2010-09-02
4
Medium Priority
?
1,376 Views
Last Modified: 2012-05-10
      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
Comment
Question by:FNDAdmin
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
4 Comments
 
LVL 17

Accepted Solution

by:
Zhaolai earned 2000 total points
ID: 33588024
The following link should be helpful:

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

0
 
LVL 12

Expert Comment

by:GMGenius
ID: 33588044
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
 
LVL 29

Expert Comment

by:nffvrxqgrcfqvvc
ID: 33588276
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
 

Author Closing Comment

by:FNDAdmin
ID: 33596519
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

URL rewriting in AWS CloudFront

A quick how-to guide to implement with a Lambda function!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

If you need to start windows update installation remotely or as a scheduled task you will find this very helpful.
This article shows how to deploy dynamic backgrounds to computers depending on the aspect ratio of display
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…
This lesson covers basic error handling code in Microsoft Excel using VBA. This is the first lesson in a 3-part series that uses code to loop through an Excel spreadsheet in VBA and then fix errors, taking advantage of error handling code. This l…
Suggested Courses

715 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question