如何在 Autohotkey 中拆分制表符分隔的字符串?

2024-01-09

我将一系列制表符分隔的字符串复制到 Windows 剪贴板。我想使用制表符将这些字符串拆分为数组。

Unit    Dept_ID Name
CORP    0368    Admin
CORP    3945    Programmer
SESHAN  4596    Software Engineer   

我正在尝试使用字符串分割() https://autohotkey.com/docs/commands/StringSplit.htm,但我不知道如何使用“制表符”作为分隔符。我尝试了几种不同的方法,但似乎都不起作用。

clipboard = %clipboard%  ; Convert to plain text
StringSplit, MyArray, clipboard, `\t` ; Split string using tabs
MsgBox % "MyArray[1] = " . MyArray[1] ; BUG: Prints empty string

如何在 AutoHotkey 中拆分制表符分隔的字符串?


首先,您需要使用以下命令将它们拆分为行数组:

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 有两种类型的数组,即“新”类型,它们实际上是对象,您可以将它们与arr[index]和旧的伪数组。在您的代码中,您将它们混合在一起, StringSplit 返回一个伪数组,不能与[]。我建议您阅读有关数组的内容文档 https://autohotkey.com/docs/misc/Arrays.htm.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Autohotkey 中拆分制表符分隔的字符串? 的相关文章

随机推荐