Moin Moin, ich bin neu hier in dem Forum - das ist mein erster Eintrag - und ich hoffe ihr könnt mir weiter helfen. Ich habe ein Quellcode in Bascom für eine Laufschrift geschrieben, der funktioniert auch ohne weiteres, allerdings kriege ich Probleme wenn ich Texte mit über 255 Zeichen eingeben will. Ein String in Bascom ist auf 255 Zeichen begrenzt. Ich will in meiner Laufschrift aber über 1000 Zeichen haben und ein Splitten der Variablen bietet sich nicht an, da die Laufsxchrift sonst unterbrochen werden würde. Jetzt meine Frage: Wie kann ich Text-Variable mit über 1000 Zeichen in Bascom erstellen?
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é
Danke für deine schnelle Antwort! Zu meinem Glück arbeite ich natürlich mit Mid, Instr und Len. Deswegen wollte ich das möglichst in eine Variable reinpacken und mir die Splittung in ein Array sparen. Aber wenn es nicht anders geht, hat mir das schonmal weiter geholfen. Mit freundlichem Gruß, Steffen
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.