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 :

Evaluation d'une chaîne de caractère


Sujet :

VB 6 et antérieur

  1. #21
    Membre éclairé Avatar de Le Pharaon
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 880
    Points : 742
    Points
    742
    Par défaut
    Tu as testé ce que je disais plus haut ?
    Citation Envoyé par Bujuman
    Je ne vois vraiment pas ce qui peut justifier la présence de
    cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tmp1 = EcrMain.ScriptControl1.Eval(tmp4)
    Sinon pourquoi ne pas mettre directement ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    resultat = EcrMain.ScriptControl1.Eval(tmp4 & tmp2 & tmp3)
    Scuse me while I kiss the sky ! Jimi Hendrix

  2. #22
    Nouveau membre du Club Avatar de _ChToM_
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 111
    Points : 27
    Points
    27
    Par défaut
    Ouaip j'ai testé cette solution mais ca ne marche pas.

    Ca marche chez toi?

    En fait, c'est là où il me dit que les types sont incompatibles...

  3. #23
    Membre éclairé Avatar de Le Pharaon
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 880
    Points : 742
    Points
    742
    Par défaut
    Citation Envoyé par _ChToM_
    En fait, c'est là où il me dit que les types sont incompatibles...
    Quelle ligne ?
    Je t'ai demandé de mettre ça à la place
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    resultat = EcrMain.ScriptControl1.Eval(tmp4 & tmp2 & tmp3)
    Scuse me while I kiss the sky ! Jimi Hendrix

  4. #24
    Nouveau membre du Club Avatar de _ChToM_
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 111
    Points : 27
    Points
    27
    Par défaut
    Bah c'est ce que j'ai fait.

    Du coup dans résultat ca me donne bien le résultat, mon seul problème c'est que je suis obligé de passer par la solution de Delbeke (appel à la fonction Traduit).

    Je n'arrive toujours pas à récupérer la valeur de mon champ.

    J'ai bien son nom, mais en faisant ce que Bujuman a dit, c'est comme si je faisais :
    resultat = EcrMain.ScriptControl1.Eval("nom_de_maVariable" & "=" & "2")

    alors que ce que je voudrai faire c'est :
    resultat = EcrMain.ScriptControl1.Eval("valeur_de_maVariable" & "=" & "2")

  5. #25
    Nouveau membre du Club Avatar de _ChToM_
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 111
    Points : 27
    Points
    27
    Par défaut
    Citation Envoyé par Bujuman
    Quelle ligne ?
    Je t'ai demandé de mettre ça à la place
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    resultat = EcrMain.ScriptControl1.Eval(tmp4 & tmp2 & tmp3)
    A la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    resultat = EcrMain.ScriptControl1.Eval(tmp4 & tmp2 & tmp3)

  6. #26
    Membre éclairé Avatar de Le Pharaon
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 880
    Points : 742
    Points
    742
    Par défaut
    Citation Envoyé par _ChToM_
    A la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    resultat = EcrMain.ScriptControl1.Eval(tmp4 & tmp2 & tmp3)
    Oki, maintenant fait un msgbox de ces variables pour voir ce que ça donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    msgbox "tmp4 : " & tmp4 & "  tmp2 : " & tmp2 & " tmp3 : " & tmp3
    Scuse me while I kiss the sky ! Jimi Hendrix

  7. #27
    Nouveau membre du Club Avatar de _ChToM_
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 111
    Points : 27
    Points
    27
    Par défaut
    Sur la MsgBox, j'ai :
    En passant par la méthode Traduit de Delbeke :
    tmp4 : 2
    tmp2 : =
    tmp3 : 2
    resultat = EcrMain.ScriptControl1.Eval(tmp4 & tmp2 & tmp3) me donne "Vrai"

    Les variables sont initialisées comme ca :
    tmp4 = traduit(rs_tmp("LIB_CHAMP"))
    tmp2 = rs_tmp("LIB_COMPARAISON")
    tmp3 = rs_tmp("LIB_VALUE")

    Sans passer par la méthode Traduit :
    tmp4 : nom_de_ma_variable
    tmp2 : =
    tmp3 : 2
    resultat = EcrMain.ScriptControl1.Eval(tmp4 & tmp2 & tmp3) me pete une erreur

    Initialisation des variables :
    tmp4 = rs_tmp("LIB_CHAMP")
    tmp2 = rs_tmp("LIB_COMPARAISON")
    tmp3 = rs_tmp("LIB_VALUE")

  8. #28
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Bonjour,
    Je me demandais une chose, ne peut tu pas créer une table qui aurait deux colonne, la premiere le nom de ta variable, et la deuxième la valeur de ta variable ? Ainsi lorsque tu recupère le nom de ta variable, tu saurais avec ta deuxième table la valeur de celle-ci, et grace à Eval tu pourrais faire ce que tu souhaites faire. De plus ton code serais générique, car quelque soit le nombre de variable et leur valeur que tu voudrais rajouter, il suffirait de les rajouter dans ta table.
    Si tu as la possibilité de créer des tables, je pense que ce serait la meilleur façon de faire.
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  9. #29
    Nouveau membre du Club Avatar de _ChToM_
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 111
    Points : 27
    Points
    27
    Par défaut
    Ben non c'est pas possible, parce que en fait, le nom de ma variable ne change pas, mais la valeur elle change a chaque tour que je fais quand je fais la lecture de mes enregistrements.

    Donc à chaque tour de boucle, ma valeur change mais je la stocke toujours dans la même variable.

  10. #30
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Tu l'as récupère à partir de quoi la valeur de ta variable ?
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  11. #31
    Nouveau membre du Club Avatar de _ChToM_
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 111
    Points : 27
    Points
    27
    Par défaut
    Citation Envoyé par cedric600
    Tu l'as récupère à partir de quoi la valeur de ta variable ?
    A partir d'une autre base de données. En fait, une application me sort des données pendant une journée, et le soir venu, mon programme VB travaille sur ces données pour les réinjecter dans une autre base de données.

  12. #32
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Et les données que te sors cette application sont associés à un nom de variable ? Est ce que l'application te sors un couple : nom de varaible, valeur ?
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  13. #33
    Nouveau membre du Club Avatar de _ChToM_
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 111
    Points : 27
    Points
    27
    Par défaut
    En fait, je recupere mes données depuis un record set qui travaille sur une base mysql. Je stocke chaque élément de chaque colonne dans un tableau dans mon programme VB.

    Par exemple, mon rs comprend trois champs :
    DATA1, DATA2, DATA3

    je stocke le tout dans un tableau,
    tab_tmp(1) = DATA1
    tab_tmp(2) = DATA2
    tab_tmp(3) = DATA3

    Now, je sais que quelque soit l'enregistrement que je suis en train de traiter, il sera stocké dans mon tableau. J'ai décidé de faire ça car il peut arriver que j'ai à modifier les données, et donc je trouvais ca plus intéressant de stocker ça dans un tableau temporaire.

    Donc, dans ma 2eme base de données, je veux sauvegarder le fait que je veux comparer mon champ tab_tmp(2) à 2.

    Ca nous donne donc le test : tab_tmp(2) = 2

    Dans tous les cas, je sais que ma donnée sera sauvegardée dans le tableau, c'est pour ça que j'ai décidé de sauvegarder le nom de la variable dans la base de données.

  14. #34
    Nouveau membre du Club Avatar de _ChToM_
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 111
    Points : 27
    Points
    27
    Par défaut
    Donc pour répondre a ta question, mon couple nom_de_variable - valeur n'existe pas vraiment.

    J'ai un tableau avec les valeurs à l'intérieur.

  15. #35
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Bon bah je ne vois pas comment t'aider, en fait mon idée à la base était de voir si tu pouvais le lien entre ta variable et sa valeur grâce à la base de donnée. Si de cette façon ce n'est pas possible, je ne vois rien d'autre qu'un select case.
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  16. #36
    Nouveau membre du Club Avatar de _ChToM_
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 111
    Points : 27
    Points
    27
    Par défaut
    Ben ouais j'avais bien pigé ce que tu voulais faire...

    M'enfin, merci quand même pour le coup de main

    Mais je suis toujours preneur de solutions adaptées à mon problème.

  17. #37
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 296
    Points : 3 549
    Points
    3 549
    Par défaut
    évaluer une expression au runtime en vb6 est un vieux classique pas facile à résoudre puisque ça revient au final à insérer un interpréteur vb dans le source lui-même...
    il existe une source qui propose un début de solution ici: http://www.softcircuits.com/dl/vbsrc/eval.zip
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

  18. #38
    Membre expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Points : 3 696
    Points
    3 696
    Par défaut
    J'ai regardé ce source que je ne connaissais pas.
    Pas mal ,mais limité aux quatre opérations avec niveau de paranthéses infini.
    Par rapport à mon source, il gere gère des variables.
    En général, on ne demande de conseils que pour ne pas les suivre ou, si on les a suivis, reprocher à quelqu'un de les avoir donnés
    (ALEXANDRE DUMAS)

    N'hésitez pas à visiter ma page de contributions

Discussions similaires

  1. Réponses: 8
    Dernier message: 12/02/2013, 01h08
  2. Saisie et affichage d'une chaîne de caractères
    Par sali dans le forum Assembleur
    Réponses: 2
    Dernier message: 31/03/2004, 18h01
  3. [Debutant(e)] Analyse d'une chaîne de caractères
    Par maire106 dans le forum Langage
    Réponses: 6
    Dernier message: 22/03/2004, 15h04
  4. Inverser une chaîne de caractères
    Par DBBB dans le forum Assembleur
    Réponses: 2
    Dernier message: 30/03/2003, 11h09
  5. Réponses: 3
    Dernier message: 09/05/2002, 01h39

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