需要在数组中查找搜索值并从制表符分隔的文件中返回对应的值

问题描述 投票:0回答:0

我一直在想办法弄清楚如何获取以下示例数据,将其放入数组中,在数组中搜索某些内容,然后在与所搜索内容相同的行中返回其他内容。最终结果是我在 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`
arrays object associative-array
© www.soinside.com 2019 - 2024. All rights reserved.