TIA Datei <-> Base64-String

Alde_Oma

Level-2
Beiträge
103
Reaktionspunkte
5
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
ich suche eine Funktion, mit welcher ich eine Datei in einen Base64-String wandeln kann. Das selbe dann natürlich auch wieder zurück.
Für WinCC Runtime habe ich bereits eine Funktion gefunden (siehe Code), aber für die Siemens-Panels mit Windows CE finde ich nichts passendes.
Hat von euch jemand einen Link oder gar ein fertiges Script, was mir weiter helfen könnte?

Code:
Function VBS_File_Base64(ByVal sDatei)
    If SmartTags("x_OS_Win10") Then 'Windows 10
        Dim InStream, Output
        Dim oXML, oNode
        Dim ReadBytes, Base64Encode
        
        Set InStream = CreateObject("ADODB.Stream")
        InStream.Open
        InStream.type = 1 'TypeBinary
        InStream.LoadFromFile(sDatei)
        ReadBytes = InStream.Read()
        
        Set oXML = CreateObject("MSXML2.DOMDocument")
        Set oNode = oXML.CreateElement("Base64")
        oNode.dataType = "Bin.Base64"
        oNode.nodeTypedValue = ReadBytes
        Base64Encode = oNode.text
        
        'String zurückgeben
        VBS_File_Base64 = Base64Encode
    Else 'Windows CE
        
        
    End If
    
End Function

Und wieder zurück in eine Datei:
Code:
Function VBS_Base64_File(ByVal sBase64, ByVal s_Datei)
    Dim FSO, FS, Input
    Dim oXML, oNode
    Dim BinaryStream
        
    If SmartTags("x_OS_Win10") Then 'Windows 10
        Set FSO = CreateObject("Scripting.FileSystemObject")
        
        'Datei löschen
        If FSO.FileExists (s_Datei) Then
            FSO.DeleteFile (s_Datei)
            
        End If
    
    Else 'Windows CE
        Set FS = CreateObject("FileCtl.FileSystem")
        
        'Datei löschen
        If FS.Dir(s_Datei) <> "" Then
            FS.Kill s_Datei
            
        End If
    End If
    
    'String nicht leer
    If sBase64 <> "" Then
        If SmartTags("x_OS_Win10") Then 'Windows 10
            Set oXML = CreateObject("MSXML2.DOMDocument")
        
        Else 'Windows CE
            Set oXML = CreateObject("MSXML2.DOMDocument")
            
        End If
        
        Set oNode = oXML.CreateElement("Base64")
        oNode.dataType = "Bin.Base64"
        oNode.text = sBase64
        
        Set BinaryStream = CreateObject("ADODB.Stream")
        BinaryStream.Type = 1 'adTypeBinary
        BinaryStream.Open
        BinaryStream.Write oNode.nodeTypedValue
        BinaryStream.SaveToFile s_Datei
        
        'Rückgabewert
        VBS_Base64_File = True
        
    Else
        'Rückgabewert
        VBS_Base64_File = False
        
    End If
End Function
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das hatte ich mir auch schon angeschaut, bekomm es aber nicht hin. Bin mir auch nicht sicher ob es damit überhaupt funktioniert.

You can use to convert String data to a Base64 string
Wenn ich die Funktion so belasse, wird nur der String "\Storage Card USB\Bildname.png" in Base64 gewandelt.

To convert binary data to a Base64 string see conversion functions from binary data to a string
Diese hier erklärte Funktion benötigt Binärdaten zum arbeiten. Und genau die habe ich ja nicht. Ich habe letztendlich nur den Pfad zur Datei.
 
Zurück
Oben