View Single Post
10-28-16, 10:04 PM   #3
Ketho
A Pyroguard Emberseer
 
Ketho's Avatar
AddOn Author - Click to view addons
Join Date: Mar 2010
Posts: 1,026
Lua tables can be used as both indexed and associative arrays
(if that's what you mean with dictionaries)

https://www.lua.org/pil/2.5.html -- Tables
http://www.lua.org/pil/11.2.html -- Matrices and Multi-Dimensional Arrays

Here are 2 examples of associative tables
Lua Code:
  1. local myTable = {
  2.     India = "juliet",
  3.     alpha = "bravo",
  4.     echo = "foxtrot",
  5.     Charlie = "delta",
  6.     golf = "hotel",
  7. }
  8.  
  9. local someTable = {}
  10. someTable.foo = "hello"
  11. someTable["bar"] = 123
  12. someTable[7] = "world"

Another 2 examples of a multidimensional array/table
Lua Code:
  1. -- sequential/index keys can be ommitted in this case but just an example
  2. local myTable = {
  3.     [1] = {1, 2, 3},
  4.     [2] = {1, 2, 3},
  5.     [3] = {1, 2, 3},
  6.     [4] = {1, 2, 3},
  7. }
  8.  
  9. local someTable = {}
  10.  
  11. for i = 1, 4 do
  12.     someTable[i] = {}
  13.     for j = 1, 3 do
  14.         someTable[i][j] = j
  15.     end
  16. end

Originally Posted by Twitchy250 View Post
The way I am trying to lay out the dictionary is UrchinDictionary as the primary dictionary table with the key [1] holding a setting determining the number of snapshots of the AH to hold and [2]-[3]-[4] ect holding each snapshot.

Because each snapshot can contain a lot of info on a single item due to multiple listings, it makes it a little more complicated. (reading the dictionary to me is the easy part)

Looking at your code I would rewrite it like this (untested),
but I honestly... can't understand what you're trying to do so there's probably a better way to do this :S
Lua Code:
  1. local dictionaryFix = {}
  2.  
  3. local function ReadAH()
  4.     local _, totalAuctions = GetNumAuctionItems("list")
  5.     for i = 1, totalAuctions do -- sorry for wasting tables
  6.         dictionaryFix[i] = {GetAuctionItemInfo("list", i)}
  7.     end
  8. end

(edit) wait, why couldn't you just continue in your previous thread? :x
http://www.wowinterface.com/forums/s...ad.php?t=54731

Last edited by Ketho : 10-29-16 at 02:24 AM.
  Reply With Quote