如何在 Autohotkey 中拆分制表符分隔的字符串?
How can I split tab-delimited strings in Autohotkey?
我将一系列制表符分隔的字符串复制到 Windows 剪贴板。我想使用制表符将这些字符串拆分成数组。
Unit Dept_ID Name
CORP 0368 Admin
CORP 3945 Programmer
SESHAN 4596 Software Engineer
我正在尝试使用 StringSplit(),但我不知道如何使用 'tab' 作为我的分隔符。我尝试了几种不同的方法,但 none 似乎有效。
clipboard = %clipboard% ; Convert to plain text
StringSplit, MyArray, clipboard, `\t` ; Split string using tabs
MsgBox % "MyArray[1] = " . MyArray[1] ; BUG: Prints empty string
如何在 AutoHotkey 中拆分制表符分隔的字符串?
这会将制表符分隔的剪贴板内容拆分为一个数组
MyArray := StrSplit( clipboard, "`t" )
MsgBox % "MyArray[1] = " . MyArray[1]
功能等同
StringSplit MyArray, clipboard, `t
MsgBox MyArray1 = %MyArray1%
首先,您需要将它们分成一组行:
lines := StrSplit(clipboard, "`n")
然后您可以遍历所有行并将它们拆分为创建多维数组的列:
columns := []
for index, value in lines
columns.Insert(StrSplit(value, "`t"))
; examples
MsgBox % columns[1][2] ; Dept_ID
MsgBox % columns[2][1] ; CORP
MsgBox % columns[2][2] ; 0368
请注意,Autohotkey 有 2 种类型的数组,"new" 类型实际上是对象,您可以将它们与 arr[index]
和较旧的伪数组一起使用。在您的代码中,您将它们混合在一起,StringSplit returns 是一个伪数组,不能与 []
一起使用。我建议您阅读 documentation.
中的数组
我将一系列制表符分隔的字符串复制到 Windows 剪贴板。我想使用制表符将这些字符串拆分成数组。
Unit Dept_ID Name
CORP 0368 Admin
CORP 3945 Programmer
SESHAN 4596 Software Engineer
我正在尝试使用 StringSplit(),但我不知道如何使用 'tab' 作为我的分隔符。我尝试了几种不同的方法,但 none 似乎有效。
clipboard = %clipboard% ; Convert to plain text
StringSplit, MyArray, clipboard, `\t` ; Split string using tabs
MsgBox % "MyArray[1] = " . MyArray[1] ; BUG: Prints empty string
如何在 AutoHotkey 中拆分制表符分隔的字符串?
这会将制表符分隔的剪贴板内容拆分为一个数组
MyArray := StrSplit( clipboard, "`t" )
MsgBox % "MyArray[1] = " . MyArray[1]
功能等同
StringSplit MyArray, clipboard, `t
MsgBox MyArray1 = %MyArray1%
首先,您需要将它们分成一组行:
lines := StrSplit(clipboard, "`n")
然后您可以遍历所有行并将它们拆分为创建多维数组的列:
columns := []
for index, value in lines
columns.Insert(StrSplit(value, "`t"))
; examples
MsgBox % columns[1][2] ; Dept_ID
MsgBox % columns[2][1] ; CORP
MsgBox % columns[2][2] ; 0368
请注意,Autohotkey 有 2 种类型的数组,"new" 类型实际上是对象,您可以将它们与 arr[index]
和较旧的伪数组一起使用。在您的代码中,您将它们混合在一起,StringSplit returns 是一个伪数组,不能与 []
一起使用。我建议您阅读 documentation.