Zum Inhalt springen
LANline Tipps & Tricks

Tipp: Mit VBS ANSI und UTF8/16 öffnen

Bei der Textdateiverarbeitung mit Visual Basic Script (VBS) kann es zum unschönen Phänomen kommen, dass das Skript kryptische Daten ausliest. Wie lässt sich das Problem umgehen?

Autor:Von Thomas Bär. • 29.6.2017 • ca. 0:35 Min

tut-logo

Bei der Textdateiverarbeitung mit Visual Basic Script (VBS) kann es passieren, dass das Skript statt einem lesbaren Textinhalt kryptische Daten ausliest. Auch wer den "TristateTrue" auf UNICODE umstellt, wird möglicherweise nicht den gewünschten Erfolg erzielen können. Grundsätzlich gibt es zwei unterschiedliche Methoden, um Textdateien einzulesen. Eine Variante für Standard ANSI-Dateien und eine modernere Variante für UTF8/UTF16/US-ASCII:

Variante ANSI:

option explicit

dim objSHELL, objFSO, objOTX, strFILENAME, strDATA

strFILENAME = „ANSI.TXT“

set objSHELL = CreateObject(„WScript.Shell“)

set objFSO = CreateObject(„Scripting.FileSystemObject“)

set objOTX = objFSO.OpenTextFile(strFILENAME,1,0)

strDATA = objOTX.ReadAll

msgbox(strData)

Variante: UTF8/UTF16/US-ASCII:

option explicit

Dim objSTREAM, strDATA, strFILENAME

strFILENAME = „uni.txt“

Set objSTREAM = CreateObject(„ADODB.Stream“)

objSTREAM.CharSet = „utf-16“

objSTREAM.Open

objSTREAM.LoadFromFile(strFILENAME)

strDATA = objStream.ReadText()

msgbox(strDATA)

Hierbei muss man das Charset entsprechend anpassen, beispielsweise UTF-8, UTF-16 oder US-ASCII.

Thomas Bär.