Data update
This commit is contained in:
parent
8e4e15fa56
commit
72eb4943cb
1853 changed files with 35514 additions and 9441 deletions
51
Task/Binary-strings/M2000-Interpreter/binary-strings.m2000
Normal file
51
Task/Binary-strings/M2000-Interpreter/binary-strings.m2000
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
' String assignment
|
||||
a$="alfa"
|
||||
string a="beta"
|
||||
b="beta too"
|
||||
all=a$+a+b
|
||||
Print All
|
||||
' String comparison
|
||||
Print a$=a, a=b, a+A+" too"+a$=a+b+a$ ' false false true
|
||||
b$=a$
|
||||
// compare return 0 for equal (-1,0, 1),
|
||||
//same as <=> but compare work with variables only (without coping values)
|
||||
print "using compare", compare(a$, b$), a$<=>b$ ' 0 0
|
||||
' String cloning and copying
|
||||
a2$=a$ ' copy
|
||||
' Check if a string is empty
|
||||
print a2$="", len(a$)=0
|
||||
' Append a byte to a string
|
||||
c$=Str$("ABCDE") ' utf16le "ABCDE" convert to ANSI (one byte per code)
|
||||
Print len(c$)=2.5 ' measure 16bit, so we get 2.5x2=5 bytes
|
||||
c$+=Str$("Z")
|
||||
Print Len(c$)=3
|
||||
Print chr$(c$)="ABCDEZ" ' convert to UTF16LE and then compare
|
||||
' Extract a substring from a string
|
||||
Print chr$(mid$(c$,2, 2 as byte))="BC"
|
||||
Print mid$("ABCDEZ",2,2) ="BC"
|
||||
' Replace every occurrence of a byte (or a string) in a string with another string
|
||||
Print Replace$("BC", "?", "ABCDEZBC")="A?DEZ?"
|
||||
Print Replace$("BC", "?", CHR$(c$))="A?DEZ"
|
||||
' String creation and destruction (using buffers. Memory Blocks)
|
||||
' (when needed and if there's no garbage collection or similar mechanism)
|
||||
'Join strings (IN A BUFFRT)
|
||||
buffer clear K as byte*10 ' using clear to erase the buffer with 0
|
||||
Return K, 0:=c$
|
||||
Print eval(k, 2)=asc("C"), eval(k, 3)=asc("D")
|
||||
Return k, 2:=str$("KL")
|
||||
Print chr$(eval$(k, 0, 6))="ABKLEZ"
|
||||
' rotate one byte
|
||||
M= eval(K,0)
|
||||
return k, 0:=eval$(k, 1, 5), 5:=m ' we can place strings or bytes at specific index - from 0.
|
||||
Print chr$(eval$(k, 0, 6))="BKLEZA" ' true
|
||||
// change length of buffer
|
||||
buffer K as byte*6
|
||||
// now we get the full string (with the length of 6 bytes)
|
||||
Print chr$(eval$(k))="BKLEZA" ' true
|
||||
buffer K1 as byte*6
|
||||
// buffers are special objects, so we have strings refering by object pointer.
|
||||
// we can pass the buffer pointer or return it from a function, also we can swap variables for buffers
|
||||
swap K, k1
|
||||
Print chr$(eval$(k1))="BKLEZA" ' true
|
||||
// we can get the address of string:
|
||||
Print k1(0) ' return the absolute address of byte at offset 0 on k1 buffer
|
||||
Loading…
Add table
Add a link
Reference in a new issue