IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

Valeur entière dans une Flexgrid


Sujet :

VB 6 et antérieur

  1. #1
    Débutant   Avatar de demando77
    Inscrit en
    Décembre 2007
    Messages
    263
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 263
    Points : 100
    Points
    100
    Par défaut Valeur entière dans une Flexgrid
    Slt!
    Je bosse sur un algo matriciel de pcc en VB6.0 et j'ai un problème à ce niveau:
    Je dois récupérer dans trois boucles imbriquées les valeurs entières de certaines cellules, mzis je sais pas quelle propriété utiliser.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    For k = 1 To matrice.Rows
        For i = 1 To matrice.Rows
        p.TextMatrix(0, 0) = matfloyd.TextMatrix(0, i)
            For j = 1 To matrice.Cols
                ' On recherche les fils optimaux et affiche la matrice du PCC.
                If Val(matfloyd.TextMatrix(i, k)) < pgv And Val(matfloyd.TextMatrix(k, j)) < pgv And Val((matfloyd.TextMatrix(i, k)) + Val(matfloyd.TextMatrix(k, j))) < Val(matfloyd.TextMatrix(i, j)) Then
                    matfloyd.TextMatrix(i, j) = Val(matfloyd.TextMatrix(i, k)) + Val(matfloyd.TextArray(k, j))
                    p.TextMatrix(i, j) = matfloyd.TextMatrix(0, k)
                    Else
                    p.TextMatrix(i, j) = matfloyd.TextMatrix(0, j)
                End If
            Next j
        Next i
    Next k
    Le problème qui se pose est une erreur de type incompatible.
    Etant donné que la matrice est parcourue avec trois boucles, quelle propriété dois-je utiliser pour récupérer les valeurs des cellules en tant qu'entier pour des opérations.
    J'ai même essayé de les convertir en Int, mais sans succès.

    Merci

    TM018
    Dans la vie, estimer 3 choses: le courage, la persévérance et l'humilité!!!
    Dans ce forum, ne pas oublier 3 choses: les balises Code, Quote et le Tag Résolu!!!

  2. #2
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Je ne comprends pas pourquoi trois boucles... Tu parcours autant de fois le nombre de lignes chaque cellules de chaque lignes... Donc, en supposant que ton tableau (FlexGrid) a 50 lignes et 20 cellules, tu parcoures 50 fois le tableau au complet, soit 50 fois 10 000 cellules!

    Pour convertir une valeur de chaîne en entier de type Int : tu as la fonction CInt. Voir l'aide en ligne pour les fonctions de conversion de type de données.

  3. #3
    Débutant   Avatar de demando77
    Inscrit en
    Décembre 2007
    Messages
    263
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 263
    Points : 100
    Points
    100
    Par défaut
    Pourquoi 3 boucles, c'est parce que l'algo se présente comme tel.
    K représente le nombre de fois qu'on a parcouro totalement toute la matrice (c'est u algo pcc matriciel), donc c'est bon.
    J'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cint(matfloyd.TextMatrix(i,j))
    mais il ne change pas.
    Je me demande si textmatrix n'est pas réservé qu'au string et n'aadmet pas de conversion.
    Dans ce cas puisque trois boucles parcourrent la matrice, impossible d'utiliser la propriété Text, mais une dernière possibilité que j'ai essayé mais je m'y connais pas c'est la propriété TextArray.
    Peut-elle convenir?

    Merci

    TM018
    Dans la vie, estimer 3 choses: le courage, la persévérance et l'humilité!!!
    Dans ce forum, ne pas oublier 3 choses: les balises Code, Quote et le Tag Résolu!!!

  4. #4
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 535
    Points
    5 535
    Par défaut
    Bonjour,

    Bien que certains éléments (type de pgv, nature des séprateurs, entre autres) manquent dans ton exposé de la question, le code que tu as montré ne déclencherait pas d'erreur en lui-même, même dans le pire des cas de "mélange des genres" (typages différents), car VB se "raccrocherait aux branches" malgré tout, à la condition toutefois que ton objet matrice possède bien une propriété rows et une propriété cols dont les valeurs sont un numérique. (fais donc un msgbox matrice.rows, pour voir ...)

    J'en arrive donc à la conclusion selon laquelle ton message d'erreur ne concerne pas ces lignes de code, mais une autre ligne, ailleurs, qui en exploite le résultat ...

    Sur quelle ligne apparaît donc ton message d'erreur ?

    EDIT : J'aimerais finalement également savoir quel type de contrôle est ton objet matrice et s'il contient des données liées à un recordset. Si tel est le cas, quel est le type des données acceptées par la Base de doinnées ? Y a-til des champs, pas exemple, acceptant des NULL ? des TRUE/FALSE ?...etc... se retrouvant donc sous cette forme dans ta Flexgrid ?

    Regarde (exemple) ce qui pourrait arriver avec une valeur booléenne provenant de l'un des champs. On simule donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Command1_Click()
      toto = "1.1" ' string
      titi = True 'valeur booléenne
      If titi < toto Then ' aberration volontaire
        MsgBox "oui, et je m'en fiche .... je laisse passer"
        MsgBox titi + toto ' mais là, non .... je fais planter...
      Else
        MsgBox "non"
      End If
    End Sub

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/04/2007, 21h57
  2. Tester qu'une valeur existe dans une "liste"
    Par Oluha dans le forum Langage
    Réponses: 12
    Dernier message: 04/08/2005, 23h01
  3. Comment gérer les valeur Nulles dans une requête ?
    Par sondo dans le forum Bases de données
    Réponses: 3
    Dernier message: 16/03/2005, 11h02
  4. test d'une valeur stocké dans une table
    Par EssaiEncore dans le forum ASP
    Réponses: 3
    Dernier message: 18/02/2005, 11h39
  5. Affcecter une valeur NULL dans une requete paramétrée
    Par thiouwz2 dans le forum Bases de données
    Réponses: 7
    Dernier message: 05/11/2004, 15h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo