StringBuilder
- Abhängigkeiten
- Ikarus
- Beispiele
- 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.
- Inhaltsverzeichnis
- 1SB_New
- 2SB_Use
- 3SB_Get
- 4SB_InitBuffer
- 5SB_Clear
- 6SB_Release
- 7SB_Destroy
- 8SB_ToString
- 9SB_ToStream
- 10SB_GetStream
- 11SB_Length
- 12SB_SetLength
- 13Streamoperationen
- 14Unabhängige Funktionen
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()
- return : Pointer auf den neuen StringBuilder
SB_Use
Markiert diesen StringBuilder als aktiv. Er kann nun mit den folgenden Funktionen verwendet werden.void SB_Use(int stringBuilder)
- stringBuilder : Pointer von SB_New
SB_Get
Gibt den mit SB_Use zuletzt gesetzten StringBuilder zurück.int SB_Get()
- return : Pointer auf den aktiven StringBuilder
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)
- size : Größe in Bytes. Achtung: Funktioniert nur wenn der StringBuilder neu erstellt wurde!
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()
- return : Kopie des Streams in Form eines Strings
SB_ToStream
Eine Kopie des Streams im Rohformat (char[]) zurückgeben.int SB_ToStream()
- return : Kopie des Streams
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()
- return : Länge des Streams
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)
- newLength : Neue Länge
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)
- toEscape : Diesem String werden Escapesequenzen geschenkt
- return : Das Ergebnis der Operation
STR_Unescape
Gegenstück zu STR_Escape. Escapesequenzen wie \n, \r oder \t werden Rückgewandelt.string STR_Unescape(string toUnescape)
- toUnescape : Diesem String werden die Escapesequenzen entfernt
- return : Das Ergebnis der Operation
STR_StartsWith
Prüft ob ein String einen anderen String als Startsequenz hat.int STR_StartsWith(string str, string start)
- str : Zu prüfender String
- start : Der gesuchte Anfang
- return : Wahrheitswert