2017-09-01 20 views
1

私は、AutoHotkeyにデバッグ用の文字列として表示したい配列のセットを持っています。AutoHotkeyでアレイを印刷するにはどうすればよいですか?

strArray := ["Alice", "Mary", "Bob"] ; 1D array 
strArray2D := [[1,2,3], [4,5,6]]  ; 2D array 

Java、Javascript、およびAutoItでは、組み込みのtoString()関数を使用してこれを実行できます。

strArray.toString();   // JavaScript: "Alice,Mary,Bob" 
Arrays.toString(strArray);  // Java:  "[Alice, Mary, Bob]" 
_ArrayToString($strArray, ", ") ; AutoIt:  "Alice, Mary, Bob" 

AHKの開発者lexikosは、配列will not be added anytime soonを表示するための組み込み関数を述べて、そして私がオンラインseem fairly complex見つけたソリューションの大半ました。

AutoHotkeyでアレイを印刷するにはどうすればよいですか?

+0

この1 https://autohotkey.com/board/topic/70490-print-あなたが投稿したリンクからの配列/?p = 492728は非常に簡単で、どんな深さでも配列を印刷することができます。 – Oleg

答えて

2

これは、文字列に1と2次元配列に変換

F2:: MsgBox % join(["Alice", "Mary", "Bob"]) 
F3:: MsgBox % join2D([[1,2,3], [4,5,6]]) 


join(strArray) 
{ 
    s := "" 
    for i,v in strArray 
    s .= ", " . v 
    return substr(s, 3) 
} 

join2D(strArray2D) 
{ 
    s := "" 
    for i,array in strArray2D 
    s .= ", [" . join(array) . "]" 
    return substr(s, 3) 
} 

enter image description here

+0

なぜ関数は部分文字列を返しますか? –

+0

先頭の区切り文字があればそれを切り詰める –

関連する問題