WaBis

walter.bislins.ch

CStream: Funktionen

CStream : Download | Anwendung | Funktionen
Mit den CStream-Funktionen können extrem lange Strings effizient zusammengesetzt werden.
NewStream Erzeugt ein Objekt vom Typ CStream
SetSizeEstimate Damit kann die erwartete Anzahl Teilstrings festgelegt werden, falls bekannt
Add...Add4 Fügt einen bis 4 Teilstrings an den Stream an
AddNL...Add4NL Fügt einen bis 4 Teilstrings mit anschliessendem NL (vbCRLF) an den Stream an
GetString Gibt den zusammengesetzten String zurück
Clear Löscht den Stream

 Siehe auch Anwendung

NewStream

set stream = NewStream( aSizeEstimate )
aSizeEstimate: int >= 0
Legt die erwartete Anzahl zusammenzufügender String-Elemente fest. Wenn diese Grösse nicht bekannt ist, kann einfach 0 übergeben werden.
return: CStream

Die Funktion NewStream erzeugt ein CStream-Objekt.

Das CStream-Objekt kann mehrfach wiederverwendet werden. Mit der Funktion SetSizeEstimate kann dazu die erwartete neue Anzahl von String-Elementen zugewiesen werden.

SetSizeEstimate

stream.SetSizeEstimate aSize
stream: CStream
aSize: int >= 0
Legt die erwartete Anzahl zusammenzufügender String-Elemente fest. Wenn diese Grösse nicht bekannt ist, kann einfach 0 übergeben werden.

Wenn man etwa weiss, wie viele Teilstrings zusammen zu setzen sind, so kann man dies dem CStream-Objekt mit SetSizeEstimate angeben. Der interne Array wird damit auf diese Grösse dimensioniert. Werden mehr Teilstrings hinzugefügt, so wird der interne Array jedoch automatisch weiter vergrössert.

Hinweis

SetSizeEstimate muss aufgerufen werden, bevor der erste Teilstring in den CStream eingefügt wird, da der Stream dabei gelöscht wird.

Die erwartete Anzahl Elemente kann auch direkt beim Konstruktor NewStream angegeben werden. SetSizeEstimate ist nützlich, wenn ein CStream-Objekt nach GetString wiederverwendet wird.

Add...Add4

stream.Add str
stream.Add2 str1, str2
stream.Add3 str1, str2, str3
stream.Add4 str1, str2, str3, str4
stream: CStream
str, str1...str4: string
Hinzuzufügende Strings

Fügt einen oder mehrere Strings an das CStream-Objekt an.

Beispiel

function GetTableFromDBasHTML()
  dim recordSet, htmlStream
  set htmlStream = NewStream(0)
  htmlStream.Add "<table>"
  set recordSet = LoadRecordsetFromDB()
  while not recordSet.EOF
    htmlStream.Add2 "<tr><td>", recordSet("Name")
    htmlStream.Add3 "</td><td>", ..., "</td></tr>"
    recordSet.MoveNext
  wend
  htmlStream.Add "</table>"
  GetTableFromDBasHTML = htmlStream.GetString(false)
end function

AddNL...Add4NL

stream.AddNL str
stream.Add2NL str1, str2
stream.Add3NL str1, str2, str3
stream.Add4NL str1, str2, str3, str4
stream: CStream
str, str1...str4: string
Hinzuzufügende Strings

Fügt einen oder mehrere Strings an das CStream-Objekt an und hängt ein vbCRLF zusätzlich daran.

GetString

str = stream.GetString( bClear )
stream: CStream
bClear: bool
Wenn bClear = true ist, wird der interne Speicher des Stream gelöscht.
return: string

Setzt alle mit Add...Add4 hinzugefügten Strings zusammen und gibt den resultierenden String zurück.

Wenn bClear = false ist, bleibt der interne Speicher weiterhin bestehen und kann weiter befüllt werden.

Empfehlung

Setzen sie bClear = true, wenn sie das CStream-Objekt nach dem Aufruf von GetString wiederverwenden wollen (von Grund auf neu befüllen).

Setzen sie bClear = false, wenn sie das CStream-Objekt nach dem Aufruf von GetString nicht mehr benötigen oder später weitere Werte hinzufügen wollen.

Beispiel

function GetTableFromDBasHTML()
  dim recordSet, htmlStream
  set htmlStream = NewStream(0)
  htmlStream.Add "<table>"
  set recordSet = LoadRecordsetFromDB()
  while not recordSet.EOF
    htmlStream.Add2 "<tr><td>", recordSet("Name")
    htmlStream.Add3 "</td><td>", ..., "</td></tr>"
    recordSet.MoveNext
  wend
  htmlStream.Add "</table>"
  GetTableFromDBasHTML = htmlStream.GetString(false)
end function

Clear

stream.Clear
stream: CStream

Löscht den Inhalt des CStream-Objektes. Diese Funktion wird wohl kaum benötigt. Sie ist jedoch der Vollständigkeit halber vorhanden.

Weitere Infos zur Seite
Erzeugt Sonntag, 27. Juli 2008
von wabis
Zum Seitenanfang
Geändert Dienstag, 16. Juli 2013
von wabis