ABOUT Visual Basic Programmieren Programmierung Download Downloads Tips & Tricks Tipps & Tricks Know-How Praxis VB VBA Visual Basic for Applications VBS VBScript Scripting Windows ActiveX COM OLE API ComputerPC Microsoft Office Microsoft Office 97 Office 2000 Access Word Winword Excel Outlook Addins ASP Active Server Pages COMAddIns ActiveX-Controls OCX UserControl UserDocument Komponenten DLL EXE
Diese Seite wurde zuletzt aktualisiert am 30.06.2000

Diese Seite wurde zuletzt aktualisiert am 30.06.2000
Aktuell im ABOUT Visual Basic-MagazinGrundlagenwissen und TechnologienKnow How, Tipps und Tricks rund um Visual BasicActiveX-Komponenten, Controls, Klassen und mehr...AddIns für die Visual Basic-IDE und die VBA-IDEVBA-Programmierung in MS-Office und anderen AnwendungenScripting-Praxis für IE, Windows Scripting Host und das Scripting-ControlTools, Komponenten und Dienstleistungen des MarktesRessourcen für Programmierer (Bücher, Job-Börse)Dies&Das...

Themen und Stichwörter im ABOUT Visual Basic-Magazin
Code, Beispiele, Komponenten, Tools im Überblick, Shareware, Freeware
Ihre Service-Seite, Termine, Job-Börse
Melden Sie sich an, um in den vollen Genuss des ABOUT Visual Basic-Magazins zu kommen!
Informationen zum ABOUT Visual Basic-Magazin, Kontakt und Impressum

Zurück...

Binäre Dateien

Zurück...

(-hg) mailto:hg_vbsbinaryfile@aboutvb.de

Das FileSystemObject aus der Microsoft Scripting Runtime erlaubt nur das Lesen und Schreiben von Text-Dateien. Beliebige binäre Dateien können Sie damit nicht lesen und schreiben. In Scripts, die im Windows Scripting Host (WSH) ausgeführt werden, mag der binäre Zugriff auf Dateien jedoch manchmal notwendig und sinnvoll sein. Die ActiveX-DLL avbVBSBinaryFile stellt das Objekt BinaryFile zur Verfügung. Dieses öffnet eine Datei im Binär-Modus wie in Visual Basic und stellt zur Bearbeitung den originalen Visual Basic-Anweisungen entsprechende Methoden zur Verfügung.

Der Methode OpenFile (MSDN Library - VB OpenVB: Open) können Sie einen Dateipfad oder ein File-Objekt der Scripting Runtime übergeben. Dazu können Sie optional den Sperr-Modus angeben. Im optionalen Parameter ForceCreate geben Sie an, ob die Datei ausdrücklich angelegt werden soll, falls sie noch nicht existiert - anderenfalls würde der abfangbare Laufzeit-Fehler bfErrFileNotFound ausgelöst. Setzen Sie den weiteren optionalen Parameter OverWrite auf True, wird eine bereits vorhandene Datei gegebenenfalls überschrieben.

Public Enum bfLockConstants
  lockNone     ' 0
  lockShared   ' 1
  lockReadWrite  ' 2
  lockRead     ' 3
  lockWrite    ' 4
End Enum

Public Sub OpenFile(File As Variant, _
 Optional ByVal LockMode As bfLockConstants, _
 Optional ByVal ForceCreate As Boolean, _
 Optional ByVal OverWrite As Boolean)

Die Eigenschaft File gibt die geöffnete Datei als File-Objekt zurück. Dieses wird auch dann instanziert, wenn Sie nur einen Dateipfad übergeben haben sollten. Den Pfad der Datei gibt die Eigenschaft Path wieder. Aus der Eigenschaft LockMode können Sie den Sperr-Modus auslesen. Sie können die Datei ausdrücklich über die Methode CloseFile schließen. Sie wird aber auch automatisch geschlossen, wenn Sie die Objekt-Variable, der Sie die Referenz auf das BinaryFile-Objekt zugewiesen haben, auf Nothing setzen oder wenn das Script beendet wird.

Über die Methode PutData (MSDN Library - VB PutVB: Put) schreiben Sie Daten in die Datei. Da Sie in VBScript keine Variablen eines bestimmten Datentyps deklarieren können, werden die zu schreibenden Werte und Daten als Variant-Wert im Parameter Value übergeben. In der Voreinstellung des Parameters VType als Variant-Datentyp werden die Werte tatsächlich auch als Variant-Daten in die Datei geschrieben. Geben Sie jedoch einen spezifischen Datentyp an (Konstanten-Enumeration bfVarTypeConstants), wird der entsprechende Datentyp auch tatsächlich geschrieben - mit einer Ausnahme: Arrays werden grundsätzlich als Variant-Datentyp geschrieben. Im optionalen Parameter Position können Sie schließlich noch die exakte Byte-Position festlegen, an der geschrieben wird.

Public Sub PutData(Value As Variant, _
 Optional ByVal Position As Long = -1, _
 Optional ByVal VType As bfVarTypeConstants = vtVariant)

Public Enum bfVarTypeConstants
  vtInteger = vbInteger  '  2
  vtLong = vbLong      '  3
  vtSingle = vbSingle    '  4
  vtDouble = vbDouble    '  5
  vtCurrency = vbCurrency  '  6
  vtDate = vbDate      '  7
  vtString = vbString    '  8
  vtBoolean = vbBoolean  ' 11
  vtVariant = vbVariant  ' 12
  vtByte = vbByte      ' 17
End Enum

Die Methode GetData (MSDN Library - VB GetVB: Get) liest Daten aus der Datei und gibt sie als Rückgabewert zurück. Auch hier geben Sie können Sie wieder entweder Variant-Daten (Voreinstellung) oder jeden anderen Datentyp lesen. Geben Sie den Datentyp vtString an, müssen Sie im optionalen Parameter Length die Anzahl der zu lesenden Zeichen angeben. Lassen Sie die Angabe weg, wird ein String in der Länge der gesamten Datei eingelesen. Die Leseposition können Sie im optionalen Parameter Position angeben.

Public Function GetData(Optional ByVal Position As Long = -1, _
 Optional ByVal VType As bfVarTypeConstants = vtVariant, _
 Optional ByVal Length As Long) As Variant

Der Positionszeiger wird automatisch nachgeführt und jeweils hinter die zuletzt geschriebenen bzw. gelesenen Daten gesetzt. Geben Sie bei PutData oder GetData keine ausdrückliche Position an, wird an dieser letzten Position geschrieben bzw. gelesen. Mit der Methode SeekPos (MSDN Library - VB SeekVB: Seek) können Sie den Positionszeiger auch gezielt versetzen.

Public Sub SeekPos(ByVal Position As Long)

Nähere Einzelheiten zu den hinter den Methoden stehenden originalen VB-Anweisungen finden Sie in der MSDN-Bibliothek (MSDN Library - Online (Deutsch)Online). Die beiden Beispielprojekte für die Visual Basic-Versionen 5 und 6 enthalten jeweils eine VBS-Scriptdatei zur Demonstration der Verwendung des BinaryFile-Objekts. Je nach dem, welche der beiden Visual Basic-Runtime-Datei-Versionen Sie verwenden möchten, können Sie ein Setup herunterladen und installieren. Beide Setups enthalten allerdings keine Runtime-Dateien. Auf den meisten Systemen ist jedoch die Visual Basic 5-Runtime bereits vorhanden (seit Windows 98 bzw. IE 4).


Code des Objekts BinaryFile Code des Objekts BinaryFile

Projekt avbVBSBinaryFile (VB 5) (binaryfile5.zip - ca. 4 KB)

Setup ActiveX-DLL (ohne VB 5-Runtime!) (binaryfile5s.zip - ca. 169 KB)

Projekt avbVBSBinaryFile (VB 6) (binaryfile6.zip - ca. 4 KB)

Setup ActiveX-DLL (ohne VB 6-Runtime!) (binaryfile6s.zip - ca. 243 KB)



KnowHow-Übersicht

Zum Seitenanfang

Copyright © 1999 - 2023 Harald M. Genauck, ip-pro gmbh  /  Impressum

Zum Seitenanfang

Zurück...

Zurück...