Pages: 1
- Sujet précédent - Map info 10.5 Parcourir valeurs d'une variable tableau (array) - Sujet suivant
#1 Mon 05 January 2015 12:26
- sanspseudofixe
- Juste Inscrit !
- Date d'inscription: 5 Jan 2015
- Messages: 4
Map info 10.5 Parcourir valeurs d'une variable tableau (array)
Bonjour à tous et bonne année,
Après de multiples recherches sur différents forums, je n'ai pas trouvé de solutions concernant mon problème.
J'utilise, dans map basic, la commande suivante qui permet de créer des classes afin ensuite de réaliser des analyses thématiques (automatiques).
Code:
Create Ranges From table With expr [ Use { "Equal Ranges" | "Equal Count" | "Natural Break" | "StdDev" } ] [ Quantile Using q_expr ] [ Number num_ranges ] [ Round rounding_factor ] Into Variable array_variable
Cependant, j'aimerais pouvoir récupérer les données de la variable tableau "array_variable".
Est-ce que cela est possible ?
Je me heurte à l’impossibilité de parcourir cette variable tableau ( avec mes 'petites" connaissances en la matière)
Lorsque j'essaie de manipuler le tableau ( exemple print, ou boucle), MI me renvoit " impossible d'utiliser un tableau ou un type défini par l'utilisateur dans une expression map basic"
Et si oui, quelles sont les possibilités ?
En vous remerciant d'avance,
Dernière modification par sanspseudofixe (Mon 05 January 2015 14:38)
Hors ligne
#2 Mon 05 January 2015 15:08
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: Map info 10.5 Parcourir valeurs d'une variable tableau (array)
Salut et bienvenue,
Bonne année par la même occasion
As tu essayé de regarder la fonction --> Instruction Shade
Crée une couche d'analyse thématique et l'ajoute à une fenêtre Carte existante. Vous pouvez exécuter
cette instruction à partir de la fenêtre MapBasic de MapInfo Professional.
Syntaxe
Shade [ Window window_id ]
{ layer_id | layer_name }
With Metadata
With expr
[ Ignore value_to_ignore ]
Ranges
[ Apply { Color | Size | All } ]
[ Use { Color | Size | All } [ Line... ] [ Brush... ]
[ Symbol... ]
]
{ [ From Variable float_array Style Variable style_array ] |
minimum : maximum [ Pen... ] [ Line...] [ Brush... ]
[ Symbol... ] [ , minimum : maximum [ Pen... ]
[ Line...] [ Brush... ] [ Symbol... ] ... ]
}
[ Style Replace { On | Off } ]
[ Default [ Pen... ] [ Line... ] [ Brush... ] [ Symbol... ] ]
C'est là que la variable Array est utilisée: --> [ From Variable float_array Style Variable style_array ]
En espérant que celà t'aide.
Voir aussi à partir de la page 236 du MapBasicReference guide et aussi la page 736.
A+
Joël
Hors ligne
#3 Mon 05 January 2015 15:26
- sanspseudofixe
- Juste Inscrit !
- Date d'inscription: 5 Jan 2015
- Messages: 4
Re: Map info 10.5 Parcourir valeurs d'une variable tableau (array)
Merci pour ton accueil et tes précieux conseils sur ce forum qui m'ont beaucoup aidé.
Effectivement, j'utilise l'instruction shade afin de créer mon analyse thématique.
Cependant, ces valeurs de minimum et de maximum pour le nombre de classe choisi (dans l'instruction create range ... number X),
Sont-elles récupérables dans une table ou d'une autre manière ( autre que l'inscription dans le .wor) ?
Le but étant de récupérer ces valeurs pour X classes à partir de cette variable tableau, sous forme de table ou variable.
Encore merci pour ta réponse rapide.
Hors ligne
#4 Mon 05 January 2015 15:43
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: Map info 10.5 Parcourir valeurs d'une variable tableau (array)
Perso je n'ai jamais utilisé ces fonctions mais tu dis :
autre que l'inscription dans le .wor
Tu arrives à récupérer ces valeurs dans un .wor?
Hors ligne
#5 Mon 05 January 2015 16:04
- sanspseudofixe
- Juste Inscrit !
- Date d'inscription: 5 Jan 2015
- Messages: 4
Re: Map info 10.5 Parcourir valeurs d'une variable tableau (array)
Je vais essayer d'être plus clair :
J'ai un .wor avec différentes couches sans analyse thématique ni légende. C'est ma base.
Ensuite j'ai un .mbx qui me permet de créer une analyse thématique en layer 4 sur ce .wor ( voici la version simplifiée)
Code:
'déclaration des variables Dim array_variable() as Float Dim brush_styles() As Brush Dim col_name As Alias 'création du styles Create Styles From Brush (2,15922394,16777215) 'style for LOW range To Brush (2,10068050,16777215) 'style for HIGH rangef Vary Color By "RGB" Number 5 Into Variable brush_styles ' Store a column name in the Alias variable: col_name = "Taux" 'création des classes Create Ranges From cp_proche With col_name Use "Natural Break" Number 5 round 0.1 Into Variable array_variable ' mise en place de l'analyse thématique Shade cp_proche With col_name Ranges From Variable array_variable Style Variable brush_styles 'mise en place de la légende set legend layer 4 display on shades on symbols off lines off count off title "Taux " Font ("Humanst531 BT",1,9,0) subtitle "en %" Font ("Humanst531 BT",0,8,0) ascending off ranges Font ("Humanst531 BT",0,8,0) auto display off , auto display on , auto display on , auto display on , auto display on , auto display on
Une fois lancé ce .mbx, au sein du .wor sauvegardé j'ai l'analyse thématique suivante (correspondant au "Natural break") :
Code:
shade 4 with Taux ranges apply all use all Brush (2,16777215,16777215) 0: 0.1 Brush (2,15922394,16777215) , 0.1: 0.3 Brush (2,14741680,16777215) , 0.3: 1.7 Brush (2,14737536,16777215) , 1.7: 6.4 Brush (2,11583568,16777215) , 6.4: 19.4 Brush (2,10068050,16777215) default # use 1 round 1 inflect off Brush (0,0,0) at 0 by 0 color 1 #
Mon but est de savoir si on peut parcourir et donc récupérer dans une table ( et non pas en allant fouiller dans le .wor) les valeurs de la variable tableau " array_variable" à savoir :
Code:
0: 0.1 0.1: 0.3 0.3: 1.7 1.7: 6.4 6.4: 19.4
En espérant être plus clair.
Dernière modification par sanspseudofixe (Mon 05 January 2015 16:06)
Hors ligne
#6 Mon 05 January 2015 16:50
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: Map info 10.5 Parcourir valeurs d'une variable tableau (array)
As tu essayer de récupérer tes valeurs comme ceci:
Code:
Dim array_variable() As Float Dim nItem, MaxItem As Integer MaxItem = UBound(array_variable) for nItem=1 to MaxItem Print array_variable(nItem) next
Dernière modification par Spacejo (Mon 05 January 2015 17:01)
Hors ligne
#7 Tue 06 January 2015 10:00
- sanspseudofixe
- Juste Inscrit !
- Date d'inscription: 5 Jan 2015
- Messages: 4
Re: Map info 10.5 Parcourir valeurs d'une variable tableau (array)
Merci pour ce code.
Effectivement cela fonctionne parfaitement.
J'ai pu effectivement récupérer les valeurs de cette variable.
A bientôt.
Hors ligne
Pages: 1
- Sujet précédent - Map info 10.5 Parcourir valeurs d'une variable tableau (array) - Sujet suivant