Data update
This commit is contained in:
parent
5150844a7d
commit
4bb20c9b71
7735 changed files with 38060 additions and 199180 deletions
|
|
@ -1,34 +0,0 @@
|
|||
(defun make-multi-map (rows)
|
||||
(let ((multi-map nil))
|
||||
(cl-loop for row in rows do
|
||||
(let* ((name (car row))
|
||||
(name-list (assoc name multi-map)))
|
||||
(if name-list
|
||||
(nconc name-list (list row))
|
||||
(progn
|
||||
(add-to-list 'multi-map (list name row) 't) ) ) ) )
|
||||
multi-map) )
|
||||
|
||||
(defun join-tables (table1 table2)
|
||||
(let ((multi-map (make-multi-map table2))
|
||||
(result-table '()))
|
||||
(cl-loop for row in table1 do
|
||||
(let ((multi-rc (assoc (cdr row) multi-map)))
|
||||
(when multi-rc
|
||||
(cl-loop for multi-line in (cdr multi-rc) do
|
||||
(add-to-list 'result-table
|
||||
(list (car row) (cdr row) (car multi-line) (cdr multi-line))
|
||||
't)))))
|
||||
result-table))
|
||||
|
||||
(let ((table1 '((27 . "Jonah")
|
||||
(18 . "Alan")
|
||||
(28 . "Glory")
|
||||
(18 . "Popeye")
|
||||
(28 . "Alan")))
|
||||
(table2 '(("Jonah" . "Whales")
|
||||
("Jonah" . "Spiders")
|
||||
("Alan" . "Ghosts")
|
||||
("Alan" . "Zombies")
|
||||
("Glory" . "Buffy"))))
|
||||
(message "%s" (join-tables table1 table2)) )
|
||||
|
|
@ -1,4 +1,5 @@
|
|||
with javascript_semantics
|
||||
requires("1.0.6") -- (or use the pre-1.0.6 code below)
|
||||
constant A = {{27,"Jonah"},
|
||||
{18,"Alan"},
|
||||
{28,"Glory"},
|
||||
|
|
@ -9,14 +10,14 @@ constant A = {{27,"Jonah"},
|
|||
{"Alan", "Ghosts"},
|
||||
{"Alan", "Zombies"},
|
||||
{"Glory","Buffy"}},
|
||||
jA = 2,
|
||||
jB = 1,
|
||||
jA = 2, -- (join A index)
|
||||
jB = 1, -- (join B index)
|
||||
MB = new_dict()
|
||||
sequence C = {}
|
||||
for b in B do
|
||||
object key = b[jB],
|
||||
data = getdd(key,{},MB)
|
||||
data = append(deep_copy(data),b)
|
||||
data = getdd(key,{},MB,true) -- 1.0.6+
|
||||
data = append(data,b)
|
||||
putd(key,data,MB)
|
||||
end for
|
||||
for a in A do
|
||||
|
|
|
|||
|
|
@ -1,30 +0,0 @@
|
|||
Dim t_age(4,1)
|
||||
t_age(0,0) = 27 : t_age(0,1) = "Jonah"
|
||||
t_age(1,0) = 18 : t_age(1,1) = "Alan"
|
||||
t_age(2,0) = 28 : t_age(2,1) = "Glory"
|
||||
t_age(3,0) = 18 : t_age(3,1) = "Popeye"
|
||||
t_age(4,0) = 28 : t_age(4,1) = "Alan"
|
||||
|
||||
Dim t_nemesis(4,1)
|
||||
t_nemesis(0,0) = "Jonah" : t_nemesis(0,1) = "Whales"
|
||||
t_nemesis(1,0) = "Jonah" : t_nemesis(1,1) = "Spiders"
|
||||
t_nemesis(2,0) = "Alan" : t_nemesis(2,1) = "Ghosts"
|
||||
t_nemesis(3,0) = "Alan" : t_nemesis(3,1) = "Zombies"
|
||||
t_nemesis(4,0) = "Glory" : t_nemesis(4,1) = "Buffy"
|
||||
|
||||
Call hash_join(t_age,1,t_nemesis,0)
|
||||
|
||||
Sub hash_join(table_1,index_1,table_2,index_2)
|
||||
Set hash = CreateObject("Scripting.Dictionary")
|
||||
For i = 0 To UBound(table_1)
|
||||
hash.Add i,Array(table_1(i,0),table_1(i,1))
|
||||
Next
|
||||
For j = 0 To UBound(table_2)
|
||||
For Each key In hash.Keys
|
||||
If hash(key)(index_1) = table_2(j,index_2) Then
|
||||
WScript.StdOut.WriteLine hash(key)(0) & "," & hash(key)(1) &_
|
||||
" = " & table_2(j,0) & "," & table_2(j,1)
|
||||
End If
|
||||
Next
|
||||
Next
|
||||
End Sub
|
||||
Loading…
Add table
Add a link
Reference in a new issue