VOTools for Visual Objects  
and Vulcan.NET  

Tools for Free => Bibliotheken für VO => bStream Class    




 bStream Class
Download starten
Datum: 11.04.2006
Dateigröße: 11,0 KB
VO-Versionen:

Visual Objects 2.7
CA-Visual Objects 2.6
CA-Visual Objects 2.5b-3
CA-Visual Objects 2.0b-4

 
 Beschreibung   
  Mit der Klasse bStream können beliebige Werte in einen Binär-String konvertiert und wieder zurück konvertiert werden. Ein Binär-String kann beispielsweise in eine Datei oder in die Windows-Zwischenablage geschrieben und zu einem späteren Zeitpunkt wieder ausgelesen werden.

Die folgende Tabelle listet alle Zugriffe und Methoden der Klasse bStream auf:
Read() Liest den nächsten Wert aus dem Binär-String und gibt diesen zurück.
Size Länge des Binär-String in Bytes.
Stream Der Binär-String.
Write() Konvertiert einen Wert in den Binär-String.


Das folgende Codefragment konvertiert mehrere unterschiedliche Werte in einen Binär-String und schreibt diesen in eine Datei.

  LOCAL auValue   AS ARRAY
LOCAL oStream   AS bStream
LOCAL hFile     AS PTR

// beliebige Werte in einem Array definieren
auValue := {;
             1,;
             1.2345,;
             "Hello",;
             Today(),;
             TRUE,;
             {"Hello", "how", "are", "you?", 42},;
             NULL_OBJECT;
           }

// Array in einen Binär-String konvertieren
oStream := bStream{}
IF oStream:Write(auValue)
  // Binär-String in Datei speichern
  hFile := FCreate("c:\Stream.txt")
  FWrite(hFile, oStream:Stream, oStream:Size)
  FClose(hFile)
ENDIF


Das folgende Codefragment liest einen Binär-String aus einer Datei aus und konvertiert die einzelnen Werte zurück.

  LOCAL uValue    AS USUAL
LOCAL oStream   AS bStream
LOCAL cStream   AS STRING
LOCAL iSize     AS INT
LOCAL hFile     AS PTR

IF File("c:\Stream.txt")
  // Binär-String aus der Datei auslesen
  hFile := FOpen("c:\Stream.txt")
  iSize := FSeek(hFile, 0, FS_END)

  FSeek(hFile, 0, FS_SET)
  cStream := FReadStr(hFile, iSize)

  FClose(hFile)

  // Binär-String zurück konvertieren
  oStream := bStream{cStream}
  uValue := oStream:Read()
ENDIF


Die Klasse bStream unterstützt die folgenden Datentypen:
String
Psz
Symbol
Logic
Date
Byte
ShortInt
LongInt
Word
DWord
Float
Real4
Real8
Array
Object

Werte vom Datentyp Object können nur dann konvertiert werden, wenn in der dazugehörigen Klasse die Methoden StreamIn() bzw. StreamOut() definiert sind. Das folgende Codefragment demonstriert die Implementierung der beiden Methoden für die VO-Klasse Point:

  METHOD StreamOut(oStream) CLASS Point
  // alle relevanten Klassenvariablen in das bStream Objekt
  // schreiben
  oStream:Write(self:X)
  oStream:Write(self:Y)
  RETURN TRUE

METHOD StreamIn(oStream) CLASS Point
  // alle relevanten Klassenvariablen aus dem bStream Objekt
  // lesen
  self:X := oStream:Read()
  self:Y := oStream:Read()
  RETURN TRUE


Bezugnehmend auf das vorherige Codefragment konvertiert das nächste Codefragment ein Objekt der Klasse Point in einen Binär-String:

  LOCAL oPoint    AS Point

// Point-Objekt erzeugen
oPoint := Point{1, 2}

// Point-Objekt in einen Binär-String konvertieren
oStream := bStream{}
oStream:Write(oPoint)
Copyright © 2003-2015 BEFO GmbH