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 :

VB6: faire la traduction d'un mot


Sujet :

VB 6 et antérieur

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 18
    Points : 19
    Points
    19
    Par défaut VB6: faire la traduction d'un mot
    bonjour!

    j'ai voulu recuperer la signification du mot mot manger saisie dans textbox sur un text box.

    voici mon programme mais ça marche pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Command1_Click()
    Dim a As String
    Dim b As String
    a = Val(Text1.Text)
    b = Val(Text2.Text)
    If a = manger Then
    b = eat
    Else
    b = mot - inconu
    End If
    Text2.Caption = "&b"
    End Sub
    si quelqu'un peut m'aider...

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Bonjour il ne faut pas confondre manger qui est une variable répondant au nom de manger .. et la chaine de caractére : "manger" .


    puis cela :
    c'est censé faire quoi ? une soustraction entre 2 chaines de caractères ?

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 18
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par bbil Voir le message
    Bonjour il ne faut pas confondre manger qui est une variable répondant au nom de manger .. et la chaine de caractére : "manger" .


    puis cela :
    c'est censé faire quoi ? une soustraction entre 2 chaines de caractères ?
    enfaite b=mot-inconnu
    puisque b est une chaine de caractere je pense pas que ça peut poser un probleme

  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 537
    Points
    5 537
    Par défaut
    Bonjour,

    Où et comment et avec quel typage as-tu déclaré les variables (qui semblent numériques... encore que... ) manger, eat, mot et inconnu

    et si elles sont numériques, comment peux-tu par ailleurs penser à déclarer a et b en string et leur donner comme contenu val(... une string ...) ?

    Je me réfère à cette portion là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim a As String
    Dim b As String
    a = Val(Text1.Text)
    b = Val(Text2.Text)
    Ton problème (et le titre que tu as donné à cette discussion est pour le moins étrange... et peu conforme à la définition d'un problème) me parait de commencer par le commencement...

  5. #5
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 18
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par ucfoutu Voir le message
    Bonjour,

    Où et comment et avec quel typage as-tu déclaré les variables (qui semblent numériques... encore que... ) manger, eat, mot et inconnu

    et si elles sont numériques, comment peux-tu par ailleurs penser à déclarer a et b en string et leur donner comme contenu val(... une string ...) ?

    Je me réfère à cette portion là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim a As String
    Dim b As String
    a = Val(Text1.Text)
    b = Val(Text2.Text)
    Ton problème (et le titre que tu as donné à cette discussion est pour le moins étrange... et peu conforme à la définition d'un problème) me parait de commencer par le commencement...
    salut
    je suis debutant sur ce langage, je ne le maitrise pas bien.
    moi ce que je voulais faire c'est declarer des chaines de carateres et non des carateres numeriques.
    si vous pouvez me donner un bout de code qui marche pour pouvoir voir mes erreurs ça sera mieux.
    merci

  6. #6
    Membre éprouvé Avatar de DAUDET78
    Homme Profil pro
    retraité
    Inscrit en
    Janvier 2008
    Messages
    635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 81
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 635
    Points : 1 168
    Points
    1 168
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Command1_Click()
    I% = Instr(Text1.Text,"manger")
    If I%=0 Then
    .........gestion pas trouvé le texte
    Else
    .........gestion texte  trouvé
    end if
    End Sub
    on peut utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    I% = Instr(Lcase$(Text1.Text),"manger")
    pour que la recherche soit indépendant des minuscules ou majuscules

  7. #7
    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 537
    Points
    5 537
    Par défaut
    Re...

    On ne fait pas les choses ainsi, normalement (pour traduire), mais on utilise une base de données (sinon, tu n'as pas fini en expressions conditionnelles... il t'en faudra une floppée + 15 !...)

    Je veux donc croire que ce n'est que pour t'exercer et pas pour développer du sérieux ...

    Si c'est pour t'exercer, regarde la fonction Switch, dans ton aide en ligne)

    Regarde également ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Private toto As String
    Private Sub Form_Activate()
      toto = "#@#manger@eat#dormir@sleep#courir@run#marcher@walk#"
    End Sub
     
     
    Private Sub Command1_Click()
      Dim ou As Integer, que As String
      ou = InStr(toto, "#" & LCase(Text1.Text) & "@")
      If ou = 0 Then
        Text2.Text = "mot inconnu"
      Else
        que = Mid(toto, ou + 2 + Len(Text1.Text))
        Text2.Text = Left(que, InStr(que, "#") - 1)
      End If
    End Sub
    analyse et comprends...

    Mais j'insiste : uniquement si c'est pour t'exercer, hein... et te familiariser un peu avec VB

  8. #8
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 18
    Points : 19
    Points
    19
    Par défaut
    merci

    Citation Envoyé par ucfoutu Voir le message
    Mais j'insiste : uniquement si c'est pour t'exercer, hein... et te familiariser un peu avec VB
    quel est l'inconvenient si avec cette
    toto = "#@#manger@eat#dormir@sleep#courir@run#marcher@walk#", je suis cable de mettre tous les mots français avec leurs traduction
    ?

    au lieu d'utiliser une base de données, on peut utiliser un fichier texte. hein?
    si c possible. comment ?
    merci

  9. #9
    Membre éprouvé Avatar de DAUDET78
    Homme Profil pro
    retraité
    Inscrit en
    Janvier 2008
    Messages
    635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 81
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 635
    Points : 1 168
    Points
    1 168
    Par défaut
    Ta variable Toto est limité à 64K octets
    Tu peux avoir un fichier TOTO.txt que tu lis et que tu charges dans ta variable Toto
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Long&= lenfile(TOTO.txt)
    I%=Freefile
    Open TOTO.txt for binary as #I%
       Toto=space$(Long&) ' création d'un string de la longueur du fichier
       Get #I%,1,Toto
    close #I%

  10. #10
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 18
    Points : 19
    Points
    19
    Par défaut
    salut DAUDET78

    j'ai essayé votre code mais ça marche pas.

    peux je avoir des precisions?
    merci

  11. #11
    Membre éprouvé Avatar de DAUDET78
    Homme Profil pro
    retraité
    Inscrit en
    Janvier 2008
    Messages
    635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 81
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 635
    Points : 1 168
    Points
    1 168
    Par défaut
    Citation Envoyé par mado18 Voir le message
    j'ai essayé votre code mais ça marche pas.
    Voilà le Programme complet de démo (identique au code déjà envoyé)
    Fichiers attachés Fichiers attachés

  12. #12
    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 537
    Points
    5 537
    Par défaut
    Citation Envoyé par mado18 Voir le message
    merci



    quel est l'inconvenient si avec cette
    toto = "#@#manger@eat#dormir@sleep#courir@run#marcher@walk#", je suis cable de mettre tous les mots français avec leurs traduction
    ?

    au lieu d'utiliser une base de données, on peut utiliser un fichier texte. hein?
    si c possible. comment ?
    Et que serait un fichier texte, sinon une base de données également (mais peu pratique et beaucoup plus lente ...)
    Quant à la méthode en ce qui concerne l'utilisation de fichiers texte, je ne puis que te conseiller de t'intéresser alors aux fichiers textes structurés en base de données...mais là encore : il vaudra mieux que tu te mettes d'abord un peu à l'apprentissage sérieux des bases de VB au lieu de t'en aller d'emblée dans toutes les directions ... (et ton premier message montre à quel point tu as besoin de commencer par le commencement...)

    EDIT pour DAUDET78 seul :

    Bien que la présente remarque ne change absolument rien à tout ce que j'ai dit plus haut : où as-tu vu que la variable toto est un String de longueur fixe ? ... (cette précision uniquement pour ne pas risquer d'induire en erreur d'autres lecteurs).

  13. #13
    Membre éprouvé Avatar de DAUDET78
    Homme Profil pro
    retraité
    Inscrit en
    Janvier 2008
    Messages
    635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 81
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 635
    Points : 1 168
    Points
    1 168
    Par défaut
    Citation Envoyé par ucfoutu Voir le message
    où as-tu vu que la variable toto est un String de longueur fixe ?
    je n'ai jamais utilisé cette affirmation. Je charge simplement la variable toto avec un nombre d'espace égale à la longueur (variable) du fichier à lire pour que le Get fonctionne . regarde #11 mon demo_open.zip

  14. #14
    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 537
    Points
    5 537
    Par défaut
    Citation Envoyé par DAUDET78 Voir le message
    Ta variable Toto est limité à 64K octets
    C'est à cette affirmation, que je me référais, DAUDET78 ..

    Toto n'est pas un string de longueur fixe

    Tiens ... cherche toi-même la limite de nb dans :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim nb As Long
    nb = 1000000
    toto = String(nb, "a") & "ici ma fin"
    MsgBox Mid(toto, nb - 100)

  15. #15
    Membre éprouvé Avatar de DAUDET78
    Homme Profil pro
    retraité
    Inscrit en
    Janvier 2008
    Messages
    635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 81
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 635
    Points : 1 168
    Points
    1 168
    Par défaut
    Guide de l'utilisateur Microsoft VB version 3.0 réf.No.43019 définition de la variable de type "String" : 0 jusqu'à environ 65500 caractères

    Dans MSDN
    Citation Envoyé par MSDN
    Il existe deux types de chaînes : les chaînes de longueur variable et les chaînes de longueur fixe.

    Les chaînes de longueur variable peuvent contenir environ 2 milliards (2^31) de caractères.


    Les chaînes de longueur fixe peuvent contenir de 1 à environ 64 Ko (2^16) de caractères.
    Voilà mon erreur .......

  16. #16
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    Citation Envoyé par DAUDET78 Voir le message
    Guide de l'utilisateur Microsoft VB version 3.0
    Tu ne t'en es peut-être pas rendu compte, mais on a changer de siècle

    Je plaisante, bien sûr
    J'avais vu venir le truc ...

Discussions similaires

  1. [VB6] Faire une recherche
    Par boudincweole10 dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 30/04/2006, 15h37
  2. [VB6] Faire une boucle infinie
    Par Lucas42 dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 26/04/2006, 10h14
  3. [VB6]faire un graphique qu'avec vb6
    Par rob2-9 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 15/03/2006, 11h19
  4. [VB6]Faire un site Web !
    Par Narmel dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 21/02/2006, 21h17
  5. [CR][VB6] Faire un refresh
    Par tmartin dans le forum SDK
    Réponses: 1
    Dernier message: 18/02/2005, 16h43

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