我一直在想办法弄清楚如何获取以下示例数据,将其放入数组中,在数组中搜索某些内容,然后在与所搜索内容相同的行中返回其他内容。最终结果是我在 GUI 中输入一个值,然后让该 GUI 提取相应的值。例如,如果我在我的 GUI 中输入 11036,它将返回 UBIQUITI, NANOSTATION M2 我最终会根据此处的信息将新数据推送到一个单独的文件中,但在我能够正常工作之前,继续前进是没有意义的。
我可以使用以下方法手动引用数组:
MsgBox % columns[1][2] ; Description MsgBox % columns[2][1] ; 438 MsgBox % columns[2][2] ; CI COMBO BDO 205EB, 10" PED COPPER&FIBER
我已经记不清自己尝试过多少种不同的代码示例了。 我对对象和数组主题所做的所有阅读很快就开始让我头疼了。
我需要帮助。
样本数据:
“项目”“描述”“现有数量”“单位成本”“状态”“组”“位置”“子位置”“子位置描述”“捕获库存名称”“通过日期捕获”“重新捕获”“重新捕获通过日期” “系列/卷轴” “类别” “分类” "11036" "UBIQUITI, NANOSTATION M2" "8.000" "84.6125" "活动" "IFIX - IFIX" "1 - HILL COUNTRY" "" "" "1QTR23-IFIX" "03/31/2023" "N" "" “”“”“A - 项目”
这是我创建至少对我有一些功能的数组的方法:
`FileRead, vInventoryDatabase, Sample Cycle Count TSV.txt
;split file into individual lines
lines := StrSplit(vInventoryDatabase, "`n")
;add columns to each line
columns := []
for index, value in lines
columns.Insert(StrSplit(value, "`t"))`
一些,但不是我尝试过的全部:
`searchingfor = 11036
For index, value in columns
IfEqual, value, %searchingfor%
{
MsgBox match found
ExitApp
}
ExitApp`
`haystack = columns
needle = 11036
MsgBox % HasValue(haystack, needle)
hasValue(haystack, needle) {
if(!isObject(haystack))
return false
if(haystack.Length()==0)
return false
for k,v in haystack
if(v==needle)
return true
return false
}
ExitApp`