接受列形式的数据,转换为字符串我正在尝试执行以下操作:
接受用户的输入:
A1234965
A1233339
A1234736
A123494Z
A1233114
将其转换为字符串:“A1234965,A1233339,A1234736,A123494Z,A1233114”
输入的“列”的长度没有限制。 我希望用户将“列”粘贴到要求它的弹出窗口中,然后将该数据存储为上面的字符串。 我真正的问题是找到一种方法来接受用户的输入(“文本编辑框”不会让列格式被粘贴)。 然后,当然,我不知道如何将该输入转换为我需要的字符串格式。 任何帮助,将不胜感激。 谢谢!
自动化和脚本编写回复:接受列形式的数据,转换为字符串使用 Concat Items() 函数
names default to here(1);
x={"aa","bb"};
y=concat items(x,",");回复:接受列形式的数据,转换为字符串您必须首先使用分割数据字()在使用 Concat Items() 之前。 根据粘贴数据的位置,有时您可能需要在使用 Words() 之前执行一些替换。 这些可以通过以下方式完成使用 GLOBALREPLACE 的 Regex()或者代入()/代入() 。
删除重复项也可能是个好主意(如果它们按字母顺序排序并不重要,则可以使用关联数组来实现此目的)。
回复:接受列形式的数据,转换为字符串谢谢,我肯定会使用 concat 函数。 我的大问题是接受用户输入。 他们将从数据表中复制一列并将其粘贴到编辑框中。 在我当前的代码中(如下所示),它只会采用复制列的第一个单元格...... 我假设这是因为我正在使用“文本编辑框”和文本数据类型 - 是否有一个编辑框和数据类型可以采用这样格式的数据?:
A1234965
A1233339
A1234736
A123494Z
A1233114
这是我当前的代码:
Lots = "abc";
w = New Window("Lot(s) of Interest",
Border Box(top(50), bottom(50), Left(50), Right(50),
V List Box(
H Center Box(Text Box("Lot(s) of Interest Input")),
Spacer Box(size(1, 30)),
H List Box(Text Box("Lots: "), b1 = Text Edit Box(Lots)),
Spacer Box(size(1, 10)),
H Center Box(
Button Box("Save",
Lots = b1 << get text;
w << closeWindow;
)
)
)
)
);回复:接受列形式的数据,转换为字符串你好@aidanweb ,
听起来您似乎已确定如何解析该条目,但该条目的显示给您带来了问题。 看起来文本编辑框只接受一行,而实际上所有行都粘贴得很好,但是文本编辑框的高度不允许您看到它们(如果您在编辑框中向上和向下箭头)你会看到其他行)。
我要做的就是在使对话框大致达到粘贴的预期大小时预先调整编辑框的大小。 您可以通过添加以下内容来做到这一点:
b1<<SETNLINES></SETNLINES>

我希望这有帮助!
@朱利安
Lots = "abc";
w = New Window("Lot(s) of Interest",
Border Box(top(50), bottom(50), Left(50), Right(50),
V List Box(
H Center Box(Text Box("Lot(s) of Interest Input")),
Spacer Box(size(1, 30)),
H List Box(Text Box("Lots: "), b1 = Text Edit Box(Lots)),
Spacer Box(size(1, 10)),
H Center Box(
Button Box("Save",
Lots = b1 << get text;
w << closeWindow;
)
)
)
)
);
b1<<SetNLines(10)<<set width(150);
回复:接受列形式的数据,转换为字符串
回复:接受列形式的数据,转换为字符串正如我之前所说,使用 Words() 将其拆分为列表。 然后使用 Concat Items() 将该列表组合回字符串。 使用 \!N 作为 Words() 的分隔符可能就足够了,但有时可能无法正常工作
Names Default To Here(1);
str = "abc
def";
lst = Words(str, "\!N");
str2 = "'" || Concat Items(lst, "','") || "'";
show(str, lst, str2);
回复:接受列形式的数据,转换为字符串谢谢,这有很大帮助。 我在将输入转换为列表时仍然遇到问题,格式如下:{“aa”,“bb”,“cc”}。 我本以为单词函数会立即起作用,因为输入只是一个长字符串......但我可能做错了什么。 我附上了我的日志的屏幕截图。

回复:接受列形式的数据,转换为字符串您错过了在字()功能。 在您的情况下,您需要一个(或多个)行尾字符作为分隔符。 请参阅引用字符串的转义序列表JSL语法规则。
尝试这个:
Names Default To Here( 1 );
Lots = "abc";
w = New Window( "Lot (s) of Interest",
Border Box( top( 50 ), bottom( 50 ), Left( 50 ), Right( 50 ),
V List Box(
H Center Box( Text Box( "Lot (s) of Interest Input" ) ),
Spacer Box( size( 1, 30 ) ),
H List Box( Text Box( ("Lots: ") ), b1 = Text Edit Box( Lots, <<SETNLINES></SETNLINES> //include the delimiters for carriage and new line in the Words() function
newlots = Words( Lots, "\!r\!n" );
Show( Lots );
Show( newlots );
)
)
)
)
);