banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Tue 09 November 2010 10:07

Amandine Doulaine
Participant actif
Date d'inscription: 18 Mar 2010
Messages: 76

MapBasic 8.0

Bonjour,

J'ai besoin d'aide (j'ai cherché sur le forum avant mais sans succès^^). Je dois faire des programmes sur MapBasic en évitant de faire des sélections... j'ai quelques soucis...

        - on cherche une valeur maximum dans une table, y aurait il une fonction???
        - on souhaite épurer une table pour enlever des doublons
        - et là ma colonne ne se met pas à jour????????? une idée???

Sub Presence_Absence()

   

Dim num_rec03, k, i_ind_prairie as Integer
Dim f_intersect as Float


num_rec03 = TableInfo (ind_prairie, Tab_Info_nRows)

Fetch First from ind_prairie
    For k = 1 to num_rec03


            If f_intersect = 0 Then

                i_ind_prairie = 0
            Else

                i_ind_prairie = 1

            End If


        Update ind_prairie Set indice_p = i_ind_prairie Where RowId = k
Fetch Next from ind_prairie
    Next





Call Sauvegarde

End Sub

merci pour toutes vos réponses.

Amandine

Hors ligne

 

#2 Tue 09 November 2010 10:24

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: MapBasic 8.0

Salut,

Tu cherches à développer un .mbx avec les fonctions que tu cites, ou tu cherches uniquement le résultat (avoir une table nettoyée de ces doublons et connaître le max d'une de tes colonnes)?
Dans le dernier as tu essayé une requète SQL avec "Select max" (beaucoup d'exemples sur le forum)
et pour les doublons --> http://georezo.net/forum/viewtopic.php?pid=159500
A+
Joël

Hors ligne

 

#3 Tue 09 November 2010 10:36

Amandine Doulaine
Participant actif
Date d'inscription: 18 Mar 2010
Messages: 76

Re: MapBasic 8.0

oui je veux développer un .mbx avec mon programme( je veux que ca fonctionne sous MapInfo...) mais le but est de ne pas utiliser de selection SQL, pour trouver la valeur max j'ai essayé de faire une boucle:

Fetch First From ind_annexe
    For i = 1 To i_rec

    f_max = 0
    f_long_cum = ind_annexe.long_cum


        If f_long_cum > f_max Then
            f_max = f_long_cum

        End If

Fetch Next From ind_annexe
Next

La ca tourne on va voir si ca marche...

Pas d'idée pour ma procédure " Presence_Absence" qui ne tourne pas?

merci

Hors ligne

 

#4 Tue 09 November 2010 10:40

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: MapBasic 8.0

Tu peux aussi intégrer dans un .mbx --> une requète SQL
Avec

Code:

Dim cmd as String
 cmd="Select max(colonne) from table......"
run command cmd

Dernière modification par Spacejo (Tue 09 November 2010 10:55)

Hors ligne

 

#5 Tue 09 November 2010 14:51

jean94
Participant assidu
Date d'inscription: 13 Aug 2009
Messages: 436

Re: MapBasic 8.0

Bonjour,

Spacejo a, à mon avis, la meilleurs options, or tu peux toujours essayer ceci

Code:

dim Fvaleur, Fmax as float
Fmax = 0
Fetch First From ind_annexe
Do while not EOT(ind_annexe)

Fvaleur = ind_annexe.long_cum

If Fvaleur > Fmax Then Fmax = Fvaleur End If

Fetch Next From ind_annexe
Loop
Print Fmax

Peux tu être plus explicite ce que tu entend par doublons dans ton cas?
JF

Dernière modification par jean94 (Tue 09 November 2010 14:53)

Hors ligne

 

#6 Tue 09 November 2010 23:16

Amandine Doulaine
Participant actif
Date d'inscription: 18 Mar 2010
Messages: 76

Re: MapBasic 8.0

merci pour ton code j'en ai essayé un similaire et ca marche^^

Pour les doublons en fait c'est que j'ai croisé deux tables et que en données j'ai, en nb de lignes, le multiple des deux tables...dc ya un truc qui va pas. En fait la premiere ligne d'une table est comparé avec toutes les lignes de la seconde table et ensuite la seconde ligne de la première table avec toute la seconde table..enfin tu vois???c'est comme qui dirait un peu lourd, j'arrive à plus de 860000 lignes!!!!...et a part une sélection SQL avec un group by je vois pas...

Sinon j'ai eu un autre soucis...décidément!!! à la fin de mon code MapBasic, je veux faire une analyse thématique avec une carte sauf que j'ai pas d'objet dans ma table...En fait je voudrais mettre l'objet d'une table(grille) dans la table "indice_annexe" que j'ai crée avec Mapbasic...je sais pas si j'ai été clair mais c'est vraiement galère j'y ai passé toutema matinée plus une bonne partie de l'après midi pour...RIEN! si qqun a une solution un grand merci d'avance.

Amandine

Hors ligne

 

#7 Wed 10 November 2010 10:01

Maurice
Membre
Lieu: Montpellier
Date d'inscription: 5 Sep 2005
Messages: 5331

Re: MapBasic 8.0

Amandine Doulaine a écrit:

...mais le but est de ne pas utiliser de sélection SQL...


Bonjour
C'est pédagogique comme exercice ??
Ça ne peut pas être pratique: pour faire un chrono, on ne s'oblige pas à conduire une voiture seulement en 1ère !! smile

Hors ligne

 

#8 Wed 10 November 2010 12:35

Amandine Doulaine
Participant actif
Date d'inscription: 18 Mar 2010
Messages: 76

Re: MapBasic 8.0

Bonjour Maurice, oui c'est un exercice dans le cadre d'un projet universitaire c'est pourquoi je ne veux pas les solutions mais des pistes!!!
Peux tu m'aider en ce qui cnocerne l'aspect carto???

merci

Amandine

Hors ligne

 

Pied de page des forums

Powered by FluxBB