Seite 2 von 2

Verfasst: 02.07.2008 23:15
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

Verfasst: 02.07.2008 23:24
von hjbremer
wo du recht hast, hast du recht !

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

ich liebe StructureUnion

Verfasst: 03.07.2008 23:35
von teks
Genau das hab ich gemeint,danke sehr :)

Verfasst: 04.07.2008 00:07
von Kaeru Gaman
denk dran, dass in PB fixstrings was anderes sind als dynamische strings...

Verfasst: 11.07.2008 18:20
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

Verfasst: 16.07.2008 12:44
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.