Como usar un Array Multidimensional??

General Help regarding HMG, Compilation, Linking, Samples

Moderator: Rathinagiri

Post Reply
jorge_rivero
Posts: 23
Joined: Tue Nov 07, 2017 6:41 am
DBs Used: DBF, Mysql
Location: Capital Federal, Buenos Aires, ARGENTINA

Como usar un Array Multidimensional??

Post 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
branislavmil
Posts: 6
Joined: Sat Sep 29, 2018 3:36 pm
DBs Used: DBF

Re: Como usar un Array Multidimensional??

Post 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
User avatar
serge_girard
Posts: 3167
Joined: Sun Nov 25, 2012 2:44 pm
DBs Used: 1 MySQL - MariaDB
2 DBF
Location: Belgium
Contact:

Re: Como usar un Array Multidimensional??

Post 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
There's nothing you can do that can't be done...
Post Reply