Datei <-> Base64-String

  • VBScript

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von petaod.

    Datei <-> Base64-String

    Hallo zusammen,

    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 Windows 10 habe ich bereits eine Funktion gefunden (siehe Code). Ich bräuchte das ganze aber für Windows CE. Und da finde ich nichts passendes.
    Hat von euch jemand einen Link oder gar ein fertiges Script, was mir weiter helfen könnte?

    Visual Basic-Quellcode

    1. Function VBS_File_Base64(ByVal sDatei)
    2. If SmartTags("x_OS_Win10") Then 'Windows 10
    3. Dim InStream, Output
    4. Dim oXML, oNode
    5. Dim ReadBytes, Base64Encode
    6. Set InStream = CreateObject("ADODB.Stream")
    7. InStream.Open
    8. InStream.type = 1 'TypeBinary
    9. InStream.LoadFromFile(sDatei)
    10. ReadBytes = InStream.Read()
    11. Set oXML = CreateObject("MSXML2.DOMDocument")
    12. Set oNode = oXML.CreateElement("Base64")
    13. oNode.dataType = "Bin.Base64"
    14. oNode.nodeTypedValue = ReadBytes
    15. Base64Encode = oNode.text
    16. 'String zurückgeben
    17. VBS_File_Base64 = Base64Encode
    18. Else 'Windows CE
    19. End If
    20. End Function

    Und wieder zurück in eine Datei:

    Visual Basic-Quellcode

    1. Function VBS_Base64_File(ByVal sBase64, ByVal s_Datei)
    2. Dim FSO, FS, Input
    3. Dim oXML, oNode
    4. Dim BinaryStream
    5. If SmartTags("x_OS_Win10") Then 'Windows 10
    6. Set FSO = CreateObject("Scripting.FileSystemObject")
    7. 'Datei löschen
    8. If FSO.FileExists (s_Datei) Then
    9. FSO.DeleteFile (s_Datei)
    10. End If
    11. Else 'Windows CE
    12. Set FS = CreateObject("FileCtl.FileSystem")
    13. 'Datei löschen
    14. If FS.Dir(s_Datei) <> "" Then
    15. FS.Kill s_Datei
    16. End If
    17. End If
    18. 'String nicht leer
    19. If sBase64 <> "" Then
    20. If SmartTags("x_OS_Win10") Then 'Windows 10
    21. Set oXML = CreateObject("MSXML2.DOMDocument")
    22. Else 'Windows CE
    23. Set oXML = CreateObject("MSXML2.DOMDocument")
    24. End If
    25. Set oNode = oXML.CreateElement("Base64")
    26. oNode.dataType = "Bin.Base64"
    27. oNode.text = sBase64
    28. Set BinaryStream = CreateObject("ADODB.Stream")
    29. BinaryStream.Type = 1 'adTypeBinary
    30. BinaryStream.Open
    31. BinaryStream.Write oNode.nodeTypedValue
    32. BinaryStream.SaveToFile s_Datei
    33. 'Rückgabewert
    34. VBS_Base64_File = True
    35. Else
    36. 'Rückgabewert
    37. VBS_Base64_File = False
    38. End If
    39. End Function
    wintoolz.de
    • wintoolz.KeyLocker - Programm zum sicheren Verwalten von Passwörten
    • wintoolz.CodeGallery - Datenbank für Codebeispiele veschiedener Programmiersprachen
    • wintoolz.Haushaltsbuch - Dient zum Auflisten der Aktivitäten ihrer Bankkonten

    Benutze auch du Ecosia
    Hi,
    der Link hilft mir leider nicht weiter. Hier wird von einer Textdatei ausgegangen und eingelesen. Ich habe aber Bilddateien welche ich wandeln möchte. Und diese kann ich nicht einfach Zeileweise einlesen, wie im Link beschrieben.
    Ich habe das mal kurz überflogen und das was ich jetzt sehe, läuft der Code nicht unter Windows CE. (CreateObject("Scripting.FileSystemObject") für Windows 10 und CreateObject("FileCtl.FileSystem") für Windows CE)
    wintoolz.de
    • wintoolz.KeyLocker - Programm zum sicheren Verwalten von Passwörten
    • wintoolz.CodeGallery - Datenbank für Codebeispiele veschiedener Programmiersprachen
    • wintoolz.Haushaltsbuch - Dient zum Auflisten der Aktivitäten ihrer Bankkonten

    Benutze auch du Ecosia