Page 1 of 1

Como usar un Array Multidimensional??

Posted: Fri Dec 29, 2023 6:14 pm
by jorge_rivero
Hola a todos, muchas Felicidades.
Tengo el siguiente problema:
Tengo un array de paises y quiero otro array de localidades, pero el tema es que si creo un array multidimensional, no puedo hacerlo porque cada pais no tiene la mima cantidad de localidades, como puedo hacer que al seleccionar un pais en un array me traiga todas las localidades pertenecientes a ese pais, no se como hacer usando array, o como filtrar arrays.
Gracias

Re: Como usar un Array Multidimensional??

Posted: Sat Dec 30, 2023 11:04 am
by branislavmil
Try this way

set alter on
set alter to country.txt

a1:={"country1", "country2", "country3"}
a2:={}
aadd(a2,{"country1","loc11"})
aadd(a2,{"country1","loc12"})
aadd(a2,{"country1","loc13"})

aadd(a2,{"country2","loc21"})

aadd(a2,{"country3","loc31"})
aadd(a2,{"country3","loc32"})

msgdebug(len(a1),a1)
msgdebug(len(a2),a2)


for j=1 to len(a1)

? "country: "+ a1[j]

for i=1 to len(a2)
r:=1
if a1[j]=a2[i,1]
? r,a2[i,2]
r:=r+1
endif
next

next

set alter off
set alter to
run notepad country.txt

Re: Como usar un Array Multidimensional??

Posted: Sat Dec 30, 2023 5:05 pm
by serge_girard
try this code:

Code: Select all

#include "hmg.ch"
 

set alter on
set alter to country.txt
aLOC := {}
AADD(aLOC, {"country1",{"loc-11","loc-12","loc-13","loc-14"}})
AADD(aLOC, {"country2",{"loc-21","loc-22","loc-23","loc-24","loc-25"}})
AADD(aLOC, {"country3",{"loc-31","loc-32","loc-33","loc-34","loc-35","loc-36", "loc-37"}})
AADD(aLOC, {"country4",{"loc-41"}})



for j := 1 to len(aLOC)

   ? "country: " + aLOC [J,1]
   for i := 1 to len(aLOC [J,2])
      ? I, aLOC [J,2,I]
   next
next

set alter off
set alter to
run notepad country.txt
Output:

country: country1
1 loc-11
2 loc-12
3 loc-13
4 loc-14
country: country2
1 loc-21
2 loc-22
3 loc-23
4 loc-24
5 loc-25
country: country3
1 loc-31
2 loc-32
3 loc-33
4 loc-34
5 loc-35
6 loc-36
7 loc-37
country: country4
1 loc-41