RosettaCodeData/Task/Associative-array-Merging/XBasic/associative-array-merging.b...

45 lines
1.1 KiB
Plaintext

PROGRAM "Associative array/Merging"
VERSION "0.0000"
DECLARE FUNCTION Entry ()
FUNCTION Entry ()
DIM original$[3, 2]
original$[0, 0] = "name": original$[0, 1] = "Rocket Skates"
original$[1, 0] = "price": original$[1, 1] = "12.75"
original$[2, 0] = "color": original$[2, 1] = "yellow"
DIM update$[3, 2]
update$[0, 0] = "price": update$[0, 1] = "15.25"
update$[1, 0] = "color": update$[1, 1] = "red"
update$[2, 0] = "year": update$[2, 1] = "1974"
DIM merged$[6, 2]
FOR i = 0 TO 2
merged$[i, 0] = update$[i, 0]
merged$[i, 1] = update$[i, 1]
NEXT i
index = 3
FOR i = 0 TO 2
found = 0
FOR j = 0 TO 2
IF original$[i, 0] = update$[j, 0] THEN
found = 1
EXIT FOR
END IF
NEXT j
IF found = 0 THEN
merged$[index, 0] = original$[i, 0]
merged$[index, 1] = original$[i, 1]
INC index
END IF
NEXT i
FOR i = 0 TO index - 1
PRINT "key: "; merged$[i, 0]; ", value: "; merged$[i, 1]
NEXT i
END FUNCTION
END PROGRAM