Combiner
Combiner
概述
该分类下的函数均返回拥有一个由若干文本组成的类型为list
的形参的函数。
(lst as list) as nullable text
形参中的项如果是null
,会被当做空文本对待。
Combiner.CombineTextByDelimiter
Combiner.CombineTextByDelimiter(
delimiter as text,
optional quoteStyle as nullable number
) as function
返回函数用法:
使用delimiter
将文本列表中的项连接成一个文本。
参数delimiter
可以是任意个字符的文本。
参数quoteStyle
指定引号的行为,可以是QuoteStyle.Type
枚举值,默认使用QuoteStyle.Csv
(含有引号的文本项将会按照字面进行解析,同时要记住UI界面显示的文本都是不带外围引号的,因此实际值还会包含外围的引号)。
Combiner.CombineTextByDelimiter("+-")({"1", "2", null, "3"})
Combiner.CombineTextByDelimiter("")({"1", "2", null, "3"})
Combiner.CombineTextByDelimiter("")({"1", "2""abc""d", null, "3"})
Combiner.CombineTextByDelimiter("", QuoteStyle.Csv)({"1", "2""abc""d", null, "3"})
Combiner.CombineTextByDelimiter("")({"2""abc""d"})
Combiner.CombineTextByDelimiter("", QuoteStyle.None)({"1", "2""abc""d", null, "3"})
Combiner.CombineTextByEachDelimiter
Combiner.CombineTextByEachDelimiter(
delimiters as list,
optional quoteStyle as nullable number
) as function
返回函数用法:
按照delimiters
中的顺序对文本列表中的项进行连接并生成一个新的文本。
参数delimiters
是包含若干字符的文本组成的列表。该列表中的元素会按照顺序对文本列表进行拼接,且仅使用一次。如果文本列表过长则使用空文本进行拼接。如果文本列表过短,则正常拼接,但delimiters
中的参数不能全部使用。
参数quoteStyle
指定引号的行为,可以是QuoteStyle.Type
枚举值,默认使用QuoteStyle.Csv
(含有引号的文本项将会按照字面进行解析,同时要记住UI界面显示的文本都是不带外围引号的,因此实际值还会包含外围的引号)。
Combiner.CombineTextByEachDelimiter({"ab", "cd"})({"1", "2", null, "3", "4"})
Combiner.CombineTextByEachDelimiter({"a".."h"})({"1", "2", null, "3", "4"})
Combiner.CombineTextByEachDelimiter({"a".."h"})({"1", "2""ABCD""E", null, "3", "4"})
Combiner.CombineTextByLengths
Combiner.CombineTextByLengths(
lengths as list,
optional template as nullable text
) as function
返回函数用法:
依次按照lengths
的项位置取文本列表的对应项,如果文本列表中的文本长度小于lengths
中的长度,则使用空格填充至指定的长度。
参数lengths
:
- 索引:和文本列表同步。
- 长度:如果文本列表中的文本项长度不足,则使用空格填充至指定长度。
结果会按照lengths
和文本列表两者最小的项数进行拼接。
参数template
用于指定文本模板,所有从文本列表中取到的字符会覆盖文本模板对应位置的字符,如果文本模板不够长,则会使用空格填充。
Combiner.CombineTextByLengths({0, 2, 7, 3})({"0", "0123456", "012", "012345"})
Combiner.CombineTextByLengths({0, 2, 7, 3}, "ABCDEFGHIJKLMN")({"0", "012", "012", "012"})
Combiner.CombineTextByLengths({0, 2, 7, 3}, "ABCDEF")({"0", "012", "012", "012"})
Combiner.CombineTextByPositions
Combiner.CombineTextByPositions(
positions as list,
optional template as nullable text
) as function
返回函数用法:
按照positions
中的项位置依次在positions
指定的索引位置填入文本列表中的对应项,未被占用的索引位置默认使用空格填充。
参数positions
中的项必须按照从小到大排列:
- 项索引:与文本列表的项索引同步。
- 项中的值:将文本列表中的文本项按照指定的值(索引)进行填入(如果已经有字符,那么会被覆盖)。
结果会按照positions
和文本列表两者最小的项数进行拼接。
参数template
用于指定文本模板,所有从文本列表中取到的字符会覆盖文本模板对应位置的字符,如果文本模板不够长,则会使用空格填充。
Combiner.CombineTextByPositions({2, 3, 4, 6})({"01234", "01234", "01234", "01234"})
Combiner.CombineTextByPositions({2, 3, 4}, "ABCEFG")({"01234", "01234", "01234"})
Combiner.CombineTextByPositions({2, 3, 4}, "ABCEFGHIJKLMN")({"01234", "01234", "01234"})
Combiner.CombineTextByRanges
Combiner.CombineTextByRanges(
ranges as list,
optional template as nullable text
) as function
返回函数用法:
按照ranges
中指定的位置和长度取文本列表中的内容进行填充。
参数ranges
是由{填入索引, 长度}
组成的列表。
- 项索引:和文本列表的项索引同步。
- 填入索引:表示将文本列表中截取到的文本填入的起始索引位置,可能会发生覆盖。
- 长度:从文本列表提取到的项的长度,如果长度过长会进行截断,不足的默认填充空格。
参数template
用于指定文本模板,所有从文本列表中取到的字符会覆盖文本模板对应位置的字符,如果文本模板不够长,则会使用空格填充。
Combiner.CombineTextByRanges({{1, 2}, {5, 6}})({"0123", "0123456789"})
Combiner.CombineTextByRanges({{1, 2}, {0, 6}}, "ABCDEFGH")({"0123", "0123456789"})