StringBuilder

Der StringBuilder ist erdacht um auf einfachem Wege (Ohne ConcatStrings und IntToString) mehrere Elemente zu einem String zusammenfügen zu können. Der StringBuilder arbeitet mit Pointern, nicht mit Handles. Alle erstellten StringBuilder sind nur flüchtig.Zum Verständnis des Paketes: Alle Funktionen ab einschließlich SB_InitBuffer nutzen den aktiven StringBuilder der mit SB_New oder SB_Use eingestellt wurde, deshalb gibt es nicht wie gewohnt den Parameter "int stringBuilder". Ein Blick in das Beispiel erklärt was ich meine.

SB_New

Erstellt einen neuen StringBuilder und gibt ihn zurück. Gleichzeitig wird dieser neue StringBuilder als aktiv gesetzt. (Siehe SB_Use.)int SB_New()

SB_Use

Markiert diesen StringBuilder als aktiv. Er kann nun mit den folgenden Funktionen verwendet werden.
void SB_Use(int stringBuilder)

SB_Get

Gibt den mit SB_Use zuletzt gesetzten StringBuilder zurück.
int SB_Get()

SB_InitBuffer

Wenn die Größe des resultierenden Strings bereits bekannt ist, kann der Buffer manuell eingestellt werden. Das ist in der Regel nicht nötig.
void SB_InitBuffer(int size)

SB_Clear

Leert den aktuellen StringBuilder. Er wird dabei nicht zerstört, kann also direkt neu befüllt werden.
void SB_Clear()

SB_Release

Gibt den aktuellen Stream des StringBuilders frei. Der StringBuilder wird zerstört, der Stream nicht.
(Der Stream kann über SB_GetStream erhalten werden.)void SB_Release()

SB_Destroy

Zerstört den StringBuilder vollständig.
void SB_Destroy()

SB_ToString

Eigentlicher Nutzen des Paketes: Eine Kopie des Streams als String zurückgeben.
string SB_ToString()

SB_ToStream

Eine Kopie des Streams im Rohformat (char[]) zurückgeben.
int SB_ToStream()

SB_GetStream

Kopiert den Stream nicht, sondern gibt ihn so wie er ist zurück. SB_Destroy oder SB_Clear zerstören den zurückgegebenen Pointer also!

SB_Length

Gibt die aktuelle Länge des Streams zurück. Ähnlich wie STR_Len aus Ikarus.int SB_Length()

SB_SetLength

Die Länge des Streams kann auch nachträglich eingestellt werden. Bei einer Vergrößerung werden Nullbytes angehängt.
void SB_SetLength(int newLength)

Streamoperationen

Nun folgen die Streamoperationen. Mit ihnen ist es möglich den StringBuilder zu beschreiben.

SB

Hängt einen String an.
void SB(string s)

SBi

Hängt einen Integer in Textform an. (Quasi SB(IntToString(i)))void SBi(int i)

SBc

Hängt ein Byte an. (zB. 82 für 'R' - Eine ASCII Tabelle kann schnell über eine Suchmaschine deiner Wahl gefunden werden.)
void SBc(int c)

SBraw

Hängt ein Bytearray an.
void SBraw(int pointer, int length)

SBflt

Hängt einen Daedalusfloat in Textform an. (Quasi SB(FloatToString(f)))void SBflt(float f)

SBf

Hängt ebenfalls einen Float an, allerdings einen der mit dem Floatpaket erzeugt wurde.void SBf(int f)

SBw

Hängt einen Integer als vier einzelne Bytes an.
void SBw(int w)

Unabhängige Funktionen

Diese Funktionen haben mit dem StringBuilder nichts zu tun, sondern sind unabhängige Nebenprodukte.

STR_Escape

Macht aus nicht-schreibbaren Chars Escapesequenzen.
string STR_Escape(string toEscape)

STR_Unescape

Gegenstück zu STR_Escape. Escapesequenzen wie \n, \r oder \t werden Rückgewandelt.string STR_Unescape(string toUnescape)

STR_StartsWith

Prüft ob ein String einen anderen String als Startsequenz hat.
int STR_StartsWith(string str, string start)