Liste des Groupes | Revenir à cl forth |
In article <df01f20a7963efffe9f2b2f71a2526b06702d5a3@i2pn2.org>,
dxf <dxforth@gmail.com> wrote:On 28/04/2025 8:39 pm, Hans Bezemer wrote:On 28-04-2025 11:22, dxf wrote:Forth back is the refusal to abstract strings. Wanna make it a countedOn 27/04/2025 8:28 pm, Hans Bezemer wrote:...
Just a shame the very basics are missing. The only thing holding
string with a cell count? Do it. Wanna keep on doing counted strings? Do
it. Wanna do ASCIIZ strings? No problem.I've used>
But aren't string primitives a la ANS-Forth the key to flexibility?countless times.the concatenation primitive +STRING ( a u a2 u2 -- a2 u+u2 )in ANS Forth, Forth 2012 ->>
: ZPLACE ( c-addr u c-addr2 -- ) zcount +string + 0 swap c! ;
>
: ZAPPEND ( c-addr u c-addr2 -- ) zcount + zplace ;
>
The problem is: it's defined nowhere. Not in Wil Baden Toolbelt, not
>
+STRING was defined in the Open Terminal Architecture spec - a joint project
by Forth Inc and MPE circa 2000.
>
+STRING plus-string
>
( c-addr1 len1 c-addr2 len2 - c-addr2 len3 )
>
Append the string at c-addr1, for len1 bytes, to the end of the string
at c-addr2, for len2 bytes. Return the beginning of the destination
string (c-addr2) and the sum of the two lengths (len3). It is the
programmer's responsibility to ensure that there is room at the end of
the destination string to hold both strings.
>
Why it never made it into their forth offerings I don't know - perhaps
because the project was moth-balled?
It is inferior to a $! $@ $+! scheme.
A stored string must remember its length.
Les messages affichés proviennent d'usenet.