Strings sind doch auch nur Arrays

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
HeX0R
Beiträge: 3040
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Beitrag von HeX0R »

Eigentlich wollte er ja das Zeichen und nicht des Ascii-Code, also eher so:

Code: Alles auswählen

Structure charfeld
	s.s{1}[0]
EndStructure

a.s = "Hallo hier bin ich"

*chararray.charfeld = @a
For i = 1 To Len(a)
	Debug *chararray\s[i - 1]
Next i

[Edit]
Oder auch beides:

Code: Alles auswählen

Structure charfeld
	StructureUnion
		c.c[0]
		s.s{1}[0]
	EndStructureUnion
EndStructure

a.s = "Hallo hier bin ich"

*chararray.charfeld = @a
For i = 1 To Len(a)
	Debug *chararray\s[i - 1] + " (Ascii:" + Str(*chararray\c[i - 1]) + ")"
Next i
Benutzeravatar
hjbremer
Beiträge: 822
Registriert: 27.02.2006 22:30
Computerausstattung: von gestern
Wohnort: Neumünster

Beitrag von hjbremer »

wo du recht hast, hast du recht !

und ein sehr schönes Beispiel :allright: besser als meine :mrgreen:

ich liebe StructureUnion
Purebasic 5.70 x86 5.72 X 64 - Windows 10

Der Computer hat dem menschlichen Gehirn gegenüber nur einen Vorteil: Er wird benutzt
grüße hjbremer
teks
Beiträge: 7
Registriert: 02.07.2008 19:58

Beitrag von teks »

Genau das hab ich gemeint,danke sehr :)
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

denk dran, dass in PB fixstrings was anderes sind als dynamische strings...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
PMV
Beiträge: 2765
Registriert: 29.08.2004 13:59
Wohnort: Baden-Württemberg

Beitrag von PMV »

Kaeru Gaman hat geschrieben:denk dran, dass in PB fixstrings was anderes sind als dynamische strings...
Worauf möchtest du da jetzt genau hinweisen?
Das einzige, was man nicht darf, ist über die Länge des echten Strings zu
schreiben. Ansonnsten ist das eine wirklich geniale Idee ... hät ich mich
bisher schon mal näher mit Fixed Strings beschäftigt, wäre ich vielleicht
auch mal drauf bekommen /:->

:allright:

MFG PMV
alte Projekte:
TSE, CWL, Chatsystem, GameMaker, AI-Game DLL, Fileparser, usw. -.-
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

> Worauf möchtest du da jetzt genau hinweisen?

ein Fixedstring ist ein Chararray der entsprechenden Länge,
das dort steht, wo der Variablenname hinpointert,
so wie eine Long dort steht, wo der Name hinpointert.

ein dynamischer String ist ein Pointer der Länge #system (4byte),
der dort steht, wo der Variablenname hinpointert,
der auf eine Stelle im Stringpool zeigt, welcher intern verwaltet wird.
...diese Poolgeschichte ist auch das, was das extra "Threadsafe"
bei verwendung von Strings in Threads nötig macht,
ein extra Mutexen des Stringpools.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten