Das geht ganz gut mit der Overlay-Funktion: Strings werden ja immer mit
0 abgeschlossen, d.h. je weiter hinten innerhalb des Strings die 0
steht, desto laenger ist dieser:
Dim S As String * 1 At 300 'laenge ist so ziemlich egal
Dim Stringcopy(400) As Byte At S Overlay 'maximale Stringlaenge nun
400
Dim I As Word
For I = 1 To 400
Stringcopy(i) = Asc( "a")
Next
Print S ' ausgabe
des Strings, der nun die Laenge 400 besitzt
stringcopy(300) =0 'einfuegen
einer Endnull zum Abschluss des Strings
Print S 'ausgabe
des 299 Zeichen langen Strings
End
Zu beachten ist bei dieser Loesung, dass die Abschluss 0 eben manuell
eingefuegt werden muss. Weiterhin duerfen Stringoperationen, wie Mid,
Instr oder Len nicht auf den String s angewendet werden. Stattdessen
muessen Teile des Arrays in einen temporaeren String gelegt werden, um
diese Funktionen anzuwenden oder sie werden direkt so neu programmiert,
dass sie auf Arrays anwendbar sind. Texte koennen dem String nicht mehr
einfach zugewiesen werden, sondern muessen ueber das Array uebergeben
werden.
Alternativ kann man das Array auch mit mehreren, 255byte langen Strings
ueberlegen, die man dann normal mit Stringoperationen bearbeiten kann.
Allerdings ist hier wieder streng auf die 0en zu achten.
Beste Gruesse,
André