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.NET Discussion :

equivalent de la procedure "eval" en VB.net


Sujet :

VB.NET

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 122
    Points : 37
    Points
    37
    Par défaut equivalent de la procedure "eval" en VB.net
    bonjour,
    je suis debutant en VB.net et je cherche l'equivalent de la procedure "eval"
    en vb.net.Car cette procedure en VBA marche bien et en VB.net ca ne marche pas.donc je voudrais savoir son equivalent en VB.net

    marci de votre aide

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 177
    Points : 25 125
    Points
    25 125
    Par défaut
    et que fait "eval" en vba ?

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 122
    Points : 37
    Points
    37
    Par défaut
    eval est une procedure qui realise la procedure entre parenthse mais j'aarive pas a faire ca en VB.net.en sachant que pour tes petites operations comme
    eval(2+2) ca marche mais pour des choses plus gros comme eval(left quleque chose) ca marche.je suis desole si je m'exprime mal.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 122
    Points : 37
    Points
    37
    Par défaut
    exusez moi je mexprime vraiment mal,
    je voulais dire que eval est une procedure qui realise la fonction entre parenthse ou proc.pour des petites operations ca marche mais pour des grosses ca marche pas comme Eval(rowAnomalie("CodeAnomalie")) ca ne marche pas.

  5. #5
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    il n'y a pas d'équivalent

  6. #6
    Membre chevronné
    Avatar de olsimare
    Inscrit en
    Décembre 2006
    Messages
    1 179
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 179
    Points : 1 777
    Points
    1 777
    Par défaut
    Bonjour.

    Certes, l'équivalent n'existe pas, mais il y a un philanthrope qui a codé et mis à dispo un truc assez sympa :
    http://www.codeproject.com/useritems..._Evaluator.asp

    Cdt.

  7. #7
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 122
    Points : 37
    Points
    37
    Par défaut
    ca a lair d'une fonction assez sympa.merci pour votre aide.

  8. #8
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 122
    Points : 37
    Points
    37
    Par défaut
    voila ce que je veux faire:
    créer une fonction eval qui par exemple lorsqu'on tape:

    eval(left"toto tata") nous renvoie toto.donc une fonction qui traite la fonction entre parenthese.cette fonction existe en VBA et ca sapelle d'ailleurs eval mais elle ne marche pas en VB.net,elle ne marche que pour des oprations comme (1+1).aidez moi s'il vous plait.

  9. #9
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 177
    Points : 25 125
    Points
    25 125
    Par défaut
    microsoft.visualbasic.left("toto tata", 4) renverra "toto"
    pas besoin de réinventer la poudre

  10. #10
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 122
    Points : 37
    Points
    37
    Par défaut
    oui pour cett example on peut faire comme ca, mais moi j'ai besoin d'un truc plus general,de sorte que lorsque je fais eval( une fonction) ca puisse marcher,peut etre que je pose des questions bete mais c'est que mon deusimee jour de vb.net.

  11. #11
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 177
    Points : 25 125
    Points
    25 125
    Par défaut
    quel est le but final ?
    écrire ton code ou que l'utilisateur puisse créer des fonction

    si c'est pour écrire ton code, ne cherches pas une fonction générique et utilise que ce qu'il faut à chaque fois

  12. #12
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 122
    Points : 37
    Points
    37
    Par défaut
    le but en fait c que l'utilisateur va ecrire juste eval(la fonction) pour n'importe quel fonction,et que eval va traiter la fonction entre parentese.

  13. #13
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 177
    Points : 25 125
    Points
    25 125
    Par défaut
    la technique de passer par sqlserver est valable quand meme
    il faut reformater un peu avec du replace() mais au moins ca te fait peu de code à écrire

  14. #14
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 122
    Points : 37
    Points
    37
    Par défaut
    le but ce et eval(fonction) c'est l'utilisateur puisse parametrer cette fonction qui sera deja existante.peut etre que c'est plus clair mainetant.merci pour votre aide.

  15. #15
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 177
    Points : 25 125
    Points
    25 125
    Par défaut
    réponds moi que t'as pas de base de données sous la main et j'arrete de t'embeter avec ca
    mais ca marche, j'avais fait un truc utilisant ca à l'époque ou j'etais sur vb6
    une formule tapée par l'utilisateur que je remaniait ensuite pour qu'sql server la comprenne et lui il me l'executait, il sais faire toutes les opérations mathématiques ou opérations sur chaines (left, right, substring ...) et l'avantage c'est que c'est un langage compilé à la volée donc tu l'envoies en style interprété

  16. #16
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 122
    Points : 37
    Points
    37
    Par défaut
    juste pour voir si jai bien compri:tu reprends la fonction ka paramtre un utilisateur et que tu la remanie,je sais que je suis un peu chiant mais esque tu peux etre un peu plus clair ou m'envoyer un code ki fait ca,je suis encore debutant donc jai du mal a comprendre.ca fait qu'une semaine que je fais du .net.en tous cas je te remercei beaucoup pour ton aide.

  17. #17
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 177
    Points : 25 125
    Points
    25 125
    Par défaut
    tu dis à l'utilisateur ce qu'il a le droit de taper, tu définis donc un norme
    ensuite s'il a tapé gauche("blabla",3)
    tu stockes ce qu'il a tapé dans var_fct
    var_fct = replace (var_fct , """"" , "'") ' sql server utilise ' au lieu de "
    var_fct = replace (var_fct , "gauche" , "left")

    et à la fin de tes replaces tu fais sql_objet = "select " & var_fct & " from table"
    je crois que le from est obligatoire meme si le select ne porte pas dessus ...

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