接受列形式的數據,轉換為字符串我正在嘗試執行以下操作:
接受用戶的輸入:
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 );
)
)
)
)
);