<< Click to Display Table of Contents >> Navigation: 3. Script Language > ! User-Macros > BASIC-String Commands |
Sample Code
BASIC-String Commands Library
NEW: All these commands have nbow been implemetned within the STR. - Commands.
Therefore these Macros just stay as a sample from now.
These Subprogrammes implement all BASIC String-Commands like "RIGHT$","LEFT$" etc. as Macros.
You will find these Macros in the User-Library Folder as "String-Lib_Macros.mrt"
First we have here a complete Sample that will use these Macros and Test them.
Below you will find the Library Code.
'
'
'SPR Script-file: New Script_2
'Purpose:
'Author: TEOT\Theo
'Creation date: 12-23-2016 at 22:30:40
'===========================================================
'#EXE:?path\
'#SPI:ForceWrite
'#CRY:
'-----------------------------------------------------------
MBX.SAVE-RESTORE Test
VAR.$$TXT=Hallo Peter
SAV.s|$$TXA|$$TXT
VAR.$$TXT=Hey Ralf
SAV.s|$$TXA|$$TXT
$$TXT=NEW
SAV.r
DBP.$$TXT
SAV.r
DBP.$$TXT
MBX.XINSTR$
'-----------------------------------------------------------
' XINSTR$
$$TXT=HalloTextSampleText
' Mit Variable
%XINSTR $$TXT|Text|2|$$ERG
DBP.$$ERG
' Mit Stack
%XINSTR $$TXT|Text|2
$$ERG=$tos$
DBP.$$ERG
'-----------------------------------------------------------
%Test_Stack
MBX.INSTR
'-----------------------------------------------------------
' Test INSTR$
$$TXT=HalloTextSampleText
' Mit Variable
%INSTR $$TXT|Text
$$ERG=$tos$
DBP.$$ERG
' M;it Start
%INSTR $$TXT|7|Text
$$ERG=$tos$
DBP.$$ERG
'-----------------------------------------------------------
%Test_Stack
MBX.MidTo
'-----------------------------------------------------------
' Test MidTo$
$$TXT=HalloText
' Mit Variable
%MidTo_String $$TXT|6|9|$$ERG
DBP.$$ERG
' Mit Stack
%MidTo_String $$TXT|6|9
'-----------------------------------------------------------
%Test_Stack
MBX.Mid
'-----------------------------------------------------------
' Test Mid$
$$TXT=HalloText
' Mit Variable
%Mid_String $$TXT|6|3|$$ERG
DBP.$$ERG
' Mit Stack
%Mid_String $$TXT|6|3
'-----------------------------------------------------------
%Test_Stack
MBX.Right
'-----------------------------------------------------------
' Test Right$
$$TXT=Hallo
' Mit Variable
%Right_String $$TXT|2|$$ERG
DBP.$$ERG
' Mit Stack
%Right_String $$TXT|2
'-----------------------------------------------------------
%Test_Stack
MBX.Left
'-----------------------------------------------------------
' Test Left$
$$TXT=Hallo
' Mit Variable
%Left_String $$TXT|2|$$ERG
DBP.$$ERG
' Mit Stack
%Left_String $$TXT|2
'-----------------------------------------------------------
%Test_Stack
MBX.Halt
'-----------------------------------------------------------
ENR.
'===========================================================
#INC:Debug_Lib.mrt
#INC:String-Lib_Macros.mrt
'===========================================================
' END of Sample Program
Here is the Library Code:
'SPR Script-file: String-Lib
'Purpose:
'Author: Theo
'Creation date: 12-23-2016 at 22:05:01
'
' Uses: §§M01,§§M02,§§M03,§§M04
'
'===========================================================
ENR.
'===========================================================
' LEFT$ -
' P1 - Variablen-Name (in)
' P2 - Anzahl Zeichen
' P3 - Variable für Resultat
' falls nicht vorhanden, TOS
: %Left_String 2
SAV.Save|§§M01|§§M02|§§M03|§§M04
VAO.§§§03=
' Len nach §§M01
LEN.§§§01|§§M01
IVV.§§§02|>|§§M01
VAR.§§M03=§§§01
ELS.
GSS.1|§§§02|§§§01|§§M03
EIF.
#IF PARAMS>2
VAR.§§§03=§§M03
#ELS
VAR.$tos$=§§M03
#EIF
SAV.Restore
END%
'-----------------------------------------------------------
' RIGHT$ -
' P1 - Variablen-Name (in)
' P2 - Anzahl Zeichen
' P3 - Variable für Resultat
' falls nicht vorhanden, TOS
: %Right_String 2
SAV.Save|§§M01|§§M02|§§M03|§§M04
VAO.§§§03=
' Len nach §§M01
LEN.§§§01|§§M01
IVV.§§§02|>|§§M01
VAR.§§M03=§§§01
ELS.
GSS.-§§§02|-1|§§§01|§§M03
EIF.
#IF PARAMS>2
VAR.§§§03=§§M03
#ELS
VAR.$tos$=§§M03
#EIF
SAV.Restore
END%
'-----------------------------------------------------------
' MID$ -
' P1 - Variablen-Name (in)
' P2 - Start-Zeichen
' P3 - Anzahl Zeichen
' P4 - Variable für Resultat
' falls nicht vorhanden, TOS
: %Mid_String 2
SAV.Save|§§M01|§§M02|§§M03|§§M04
VAO.§§§04=
' Len nach §§M01
LEN.§§§01|§§M01
CAL.§§M04=§§§02+§§§03-1
IVV.§§M04>§§M01
VAR.§§M04=§§M01
EIF.
GSS.§§§02|§§M04|§§§01|§§M03
#IF PARAMS>3
VAR.§§§04=§§M03
#ELS
VAR.$tos$=§§M03
#EIF
SAV.Restore
END%
'-----------------------------------------------------------
' MIDTO$ -
' P1 - Variablen-Name (in)
' P2 - Start-Zeichen
' P3 - Ende Zeichen
' P4 - Variable für Resultat
' falls nicht vorhanden, TOS
: %MidTo_String 2
SAV.Save|§§M01|§§M02|§§M03|§§M04
VAO.§§§04=
' Len nach §§M01
GSS.§§§02|§§§03|§§§01|§§M03
#IF PARAMS>3
VAR.§§§04=§§M03
#ELS
VAR.$tos$=§§M03
#EIF
SAV.Restore
END%
'-----------------------------------------------------------
' Split_String -
' P1 - Variablen-Name (in)
' P2 - Delimiting Charakter
' P3 - Variable-Result 1 (left Side)
' P4 - Variable-Result 2 (right Side)
' If P3/P4 is omitted, TOS is used
: %Split_String 2
SAV.Save|§§M01|§§M02|§§M03|§§M04
VAO.§§§03=
VAO.§§§04=
' Here we get the first string before the delimiter
GES.b|§§§01|§§§02|§§M01
' Here we get the next string after the delimiter
GES.d|§§§01|§§§02|§§§M02
' Is P3 available?
#IF PARAMS>2
VAR.§§§03=§§M01
' Is P4 available?
#IF PARAMS>3
VAR.§§§04=§§M02
#ELS
VAR.$tos$=§§M02
#EIF
#ELS
VAR.$tos$=§§M01
#EIF
SAV.Restore
END%
'-----------------------------------------------------------
' InString - finde erstes Zeichen wo ein Text in einem String vorkommt
' P1 - Variablen-Name (in)
' P2 - bei 3 Parameter Startzeichen, bei 2 Parameter Searchstring
' P3 - Searchsting wenn 3 Parameter
'
: %INSTR 2
SAV.Save|§§M01|§§M02|§§M03|§§M04
#IF PARAMS>2
%INSTR_INT §§§01|§§§02|§§§03
#ELS
%INSTR_INT §§§01|§§§02
#EIF
SAV.Restore
END%
'-----------------------------------------------------------
' InString - finde erstes Zeichen wo ein Text in einem String vorkommt
' P1 - Variablen-Name (in)
' P2 - bei 3 Parameter Startzeichen, bei 2 Parameter Searchstring
' P3 - Searchsting wenn 3 Parameter
'
: %INSTR_INT 2
#IF PARAMS>2
§§M01=§§§02
LEN.§§§01|§§M02
JIV.§§M01>§§M02|LX§§§98
§§M02=§§§03
#ELS
§§M01=1
§§M02=§§§02
#EIF
' Source,Start,SearchFor
STR.FIND|§§§01|§§M01|§§M02
:LX§§§98
END%
'-----------------------------------------------------------
' XINSTR - finde X'tes Vorkommen von Searchstring in String P1
' P1 - Variablen-Name (in)
' P2 - Searchstring
' P3 - Nr. des Vorkommens das wir suchen
' P4 - Variable-Result oder Tos wenn fehlt
'
: %XINSTR 3
SAV.Save|§§M01|§§M02|§§M03|§§M04
VAO.§§§04=
VAR.§§M03=1
FOR.§§LOP|1|§§§03
%INSTR_INT §§§01|§§M03|§§§02
§§M04=$tos$
JIZ.§§M04|L§§§98
CAL.§§M03=§§M04+1
NEX.
:L§§§98
#IF PARAMS>3
VAR.§§§04=§§M04
#ELS
VAR.$tos$=§§M04
#EIF
SAV.Restore
END%
'-----------------------------------------------------------
'===========================================================