String zu lang?

Anfängerfragen zum Programmieren mit PureBasic.
Marie23
Beiträge: 49
Registriert: 31.05.2008 18:14

String zu lang?

Beitrag von Marie23 »

Hallo

ich möchte mit großen Strings arbeiten. Leider bring das immer den Compiler zum Absturz:

meinstring$ = "hier ein sehr langer string... mindestens 1000 zeichen"

Was kann ich dagegen tun?
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

String aus einer Datei lesen oder String aus mehreren zusammenfügen.
1000 Zeichen in einem String könnte Probleme in der IDE erzeugen und
Scrollen sollte schrecklich sein :mrgreen:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
X360 Andy
Beiträge: 1206
Registriert: 11.05.2008 00:22
Wohnort: Bodensee
Kontaktdaten:

Beitrag von X360 Andy »

Code: Alles auswählen

For i = 1 To 10000;0
  a$ + "a"
Next

MessageRequester("Geht doch?",a$)
Marie23
Beiträge: 49
Registriert: 31.05.2008 18:14

Beitrag von Marie23 »

Ja Andy, das ist kein Problem, aber darum gehts nicht. Ich will den langen String direkt im Sourcecode haben, er soll als Platzhalter dienen. Kann ich also den Speicherbereich für Strings irgendwie vergrößern?
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Code: Alles auswählen

Define meinstring${10000}
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

Marie23 hat geschrieben:Ja Andy, das ist kein Problem, aber darum gehts nicht. Ich will den langen String direkt im Sourcecode haben, er soll als Platzhalter dienen. Kann ich also den Speicherbereich für Strings irgendwie vergrößern?

Code: Alles auswählen

myString$ = "Also, "
myString$ + "ich "
myString$ + "versteh "
myString$ + "nur "
myString$ + "Bahnhof."
myString$ + "Aber "
myString$ + "wie "
myString$ + "Thomas "
myString$ + "schon "
myString$ + "geschrieben "
myString$ + "hat, "
myString$ + "kannst "
myString$ + "Du "
myString$ + "Strings "
myString$ + "auch"
myString$ + "verketten."

Debug myString$
Grüße ... Kiffi
a²+b²=mc²
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

>> er soll als Platzhalter dienen

bei einem Platzhalter ist doch egal was drin steht...

Code: Alles auswählen

a$ = Space( 10000 )
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Little John

Beitrag von Little John »

Kaeru Gaman hat geschrieben:>> er soll als Platzhalter dienen

bei einem Platzhalter ist doch egal was drin steht...

Code: Alles auswählen

a$ = Space( 10000 )
... und einen Platzhalter als literalen String in den Sourcecode zu schreiben, ist wohl die uneleganteste Variante.

Gruß, Little John
Marie23
Beiträge: 49
Registriert: 31.05.2008 18:14

Beitrag von Marie23 »

Nein, ich will nachher in der Binary genau denselben String haben, das ist die Sache. Deswegen kann ich da nichts mit Schleifen o.Ä. machen
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

dann schreib dir ne Datasection wo der String drinsteht.
da kannst du auch die ganzen Bytes einzeln als Zahlen reinschreiben, in der Binary steht dann der String.

Code: Alles auswählen

Restore BufferString:
Read.s a$
Debug a$

DataSection
BufferString:
Data.b 68, 105, 101, 115, 32, 105, 115, 116, 32, 101, 105, 110, 32, 117, 110, 119, 105, 99, 104, 116, 105, 103, 101
Data.b 114, 32, 84, 101, 120, 116, 32, 122, 117, 109, 32, 84, 101, 115, 116, 101, 110, 46, 32, 58, 45, 41, 0
EndDataSection
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten