Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
IStringMap multi-line string of key-values
#1
Hi,

In the following code, the key-values are multi-line strings, how to output them? only output one line? 

Is there any other way to achieve this? 

Thanks in advance for any advice and help
david

Macro Macro17
Code:
Copy      Help
out
str A="1 key"
str Av=
;1 hello
;1 world

str B="2 key"
str Bv=
;2 hello
;2 world

str C="3 key"
str Cv=
;3 hello
;3 world

str kv=
F
;{A}={Av}
;{B}={Bv}
;{C}={Cv}

IStringMap m._create
m.AddList(kv "=")

str v=m.Get("1 key")
if(v)
,out v
else
,out "not found"
#2
I thought of the following method, which is a bit tedious

How to get the defined variable name, automatically generate the following code
--------------------------------------------------------------------------------------------------
Av.replacerx("[]" "┃")
Bv.replacerx("[]" "┃")
Cv.replacerx("[]" "┃")

str kv=
F
 {A}={Av}
 {B}={Bv}
 {C}={Cv}


Macro Macro18
Code:
Copy      Help
out
str A="1 key"
str Av=
;1 hello
;1 world

str B="2 key"
str Bv=
;2 hello
;2 world

str C="3 key"
str Cv=
;3 hello
;3 world

Av.replacerx("[]" "┃")
Bv.replacerx("[]" "┃")
Cv.replacerx("[]" "┃")

str kv=
F
;{A}={Av}
;{B}={Bv}
;{C}={Cv}

IStringMap m._create
m.AddList(kv "=")

str v=m.Get("1 key")
if(v)
,v.replacerx("┃" "[]")
,out v
else
,out "not found"
#3
need to use csv format for multiline strings and csv as separator

Code:
Copy      Help
out
str A="1 key"
str Av=
;"hello
;world"

str B="2 key"
str Bv=
;"hello
;world"

str C="3 key"
str Cv=
;"hello
;world"

str kv=
F
;{A},{Av}
;{B},{Bv}
;{C},{Cv}

IStringMap m._create
m.AddList(kv "csv")
str v=m.Get("1 key")
if(v)
,out v
else
,out "not found"
#4
I want to output the original multi-line string
For example

str Av=
 1 hello
 1 world

In the following way, there will be an escape problem, e.g:

str Av=
 1 hello"
 1 world"

The #2 method is stable


Macro Macro20
Code:
Copy      Help
out
str A="1 key"
str Av=
;1 hello
;1 world

str B="2 key"
str Bv=
;2 hello
;2 world

str C="3 key"
str Cv=
;3 hello
;3 world

str kv=
F
;{A},"{Av}"
;{B},"{Bv}"
;{C},"{Cv}"

IStringMap m._create
m.AddList(kv "csv")
str v=m.Get("1 key")
if(v)
,out v
else
,out "not found"
#5
in first method your format is incorrect

should be

str Av=
 "1 hello
 1 world"

str B="2 key"
str Bv=
 "2 hello
 2 world"

str C="3 key"
str Cv=
 "3 hello
 3 world"

second method will work as well


Forum Jump:


Users browsing this thread: 1 Guest(s)