|
|
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
|
|
|
|
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) |
|
|
|
|
|
|