#1 Fri 25 January 2002 20:36
- SébastienRoddier
- Invité
recuperer automatiquement une ligne de commande
Bonjour a tous
je cherche une fonction pour recuperer une ligne de commande dans une
variable string.
Par exemple je veux recuperer automatqiuement la ligne de commande qui
correspond a une analyse thematique.
quelqu'un a t'il une idee?
merci d'avance et bon WE
#2 Fri 25 January 2002 20:38
- Abourquin
- Invité
Re: recuperer automatiquement une ligne de commande
Ces lignes de commandes permettent de recuperer 'grossierement' la ligne de commande d'une analyse presente dans une carte dans une variable.
Si votre question concerne la recuperation de n'importe quelle ligne de commande presente dans la fenetre MapBasic, ce qui suit n'est pas la solution :-(
Dim cmd as string
Dim S_Pos as string
Dim S_Beg as integer
S_Pos = 1
S_Beg = instr(1, windowinfo(frontwindow(), 14) , shade +S_Pos)
cmd = Mid( windowinfo(frontwindow(), 14) , S_Beg , instr(S_Beg + 1, windowinfo(frontwindow(), 14) , # )-S_Beg )
print cmd
S_Pos correspond au numero de la couche correspondant a l'analyse (qu'il faut donc connaitre pour utiliser ces commandes).
#3 Fri 25 January 2002 20:40
- Jacques Paris
- Invité
Re: recuperer automatiquement une ligne de commande
Une precision s'impose dans le choix de l'argument de windowinfo(). 14
reproduit toutes les commandes qui apparaitraient dans le WOR sauvegarde a
ce moment la et comme s'il n'y avait que cette fenetre la (toutes les
ouvertures de table.... relatifs a cette fenetre), 15 seulement les
commandes necessaires a cloner le fenetre en question.
Je prefere utiliser 15 parce qu'il donne bien moins d'info au milieu de quoi
rechercher la commande, mais c'est aussi parce que mes applications s'y
pretent. Certaines commandes recherchees pourraient en effet n'exister que
dans les resultats fournis par 14.
La question de Sebastien me laisse perplexe : dois-je comprendre qu'il
voudrait recuperer dans une variable d'une application la commande qui vient
d'etre passee et executee? Il me semble y voir la une impossibilite si
l'application est en cours d'execution car si elle est active il n'y a aucun
acces aux commandes . Mais s'il s'agit de lancer l'application et alors
de recuperer une command faite auparavant, alors il faut depouiller quelque
archive pour en extraire la portion correspondant a la commande, comme le
montre A Bourquin et avec les precautions d'usage naturellement (ex. s'il y
avait plus d'une couche thematique dans la fenetre)
Mais il faut savoir que toutes les commandes ne sont pas necessairement
recuperables par windowinfo() 14 ou 15, que toutes n'apparaissent pas dans
la fenetre MapBasic (on pourrait envisager de recuperer son contenu avec un
Run Menu Command 1102 ayant pris soin de la vider (RMC 1101) avant de
l'enregistrer, mais cela force a passer par la specification d'un fichier
texte, sa recuperation et sa lecture, ce qui n'est pas bien souple).
Donc a cette question, une autre que voulez-vous donc faire, dans quelles
conditions ?
Jacques Paris
#4 Fri 25 January 2002 20:42
- SébastienRoddier
- Invité
Re: recuperer automatiquement une ligne de commande
Fasse a de telles interrogations, je me dois de repondre plus explicitement.
Mon objectif est de recuperer l'ensemble des lignes de commandes d'une
analyse thematique, non pas par mapinfo dircetement mais via de
l'integrated mapping (MI + VB) afin d'automtiser un certains nombre de
cartes prefedinies.
La reponse de A Bourquin repond en ce sens parfaitement a mes attentes.
Voila c'est tout pour aujourd'hui.
Sebastien