Функция, над которой я работаю, это анализ файла CSV, извлечение значений полей и добавление их в новый массив.Данные - имена игроков, убийства и смерти с сервера онлайн-игр.
Массив является многомерным и структурированным [[Имя игрока1, количество убийств, количество смертей], [Имя игрока2, количество убийств, #of Deaths] и т. д.]
Я изо всех сил пытаюсь найти решение для циклического просмотра имен игроков, чтобы проверить, существует ли игрок, указанный в данных CSV, уже в этом новом массиве, и вернуть его ключ, чтобы данныеможно манипулировать.
Я использую скрипт HasVal, подробно здесь , однако, он не работает с моим многомерным массивом.
Я также создалальтернативный метод цикла, который, похоже, тоже не работает.
arrVal, pName и playerDate и все они определены как глобальные переменные.
HasVal:
{
arrVal := ""
If !(IsObject(playerData)) || (playerData.Length() = 0)
{
;MsgBox, Array is empty or doesnt exist! ;------------WORKING
arrVal := 0
Return
}
;------- NOT WORKING START NOT WORKING START ------------
; ATTEMPT #2
Loop, pCount
{
k := 1
MsgBox % playerData[k][1]
If (playerData[k][1] = pName)
arrVal := k
Return
k++
}
/*
; ATTEMPT #1
For i, v in playerData[i][1]
If (v = pname)
{
MsgBox, %pName% found in Database at key %i%
arrVal := i
Return
}
;------- NOT WORKING END NOT WORKING END ------------
*/
If (arrVal = "")
{
MsgBox, %pName% NOT found in Datbase! ;------------WORKING
arrVal := X
Return
}
}
Ни For-Loop, ни Loop /Если кажется, что методы работают, и при каждом запуске сценария, если Player (pName) уже был добавлен в массив (playerData), он не может найти его и возвращается к последнему аргументу - Player не найден в базах данныхе, и добавляет новую запись, создавая дубликаты записей.
Идея состоит в том, что скрипт должен найти любые имена, уже находящиеся в базе данных, и вернуть его ключ, чтобы я мог затем изменить количество убийств / смертей, связанных с этим игроком.
Заранее спасибо, действительноизо всех сил пытаясь свести мою голову вокруг многомерных массивов.