begin process at 2010 02 10 14:18:45
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Visual Basic & VB.NET

 > 

Archives Visual Basic

 > 

J'AI BESOIN D'AIDE !!!! :)

 > 

svp, au bord du suicide


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

svp, au bord du suicide

dimanche 27 février 2005 à 04:15:11 | svp, au bord du suicide

saveourssouls

Donc voila.
LA fonction que je vais tenter de vous faire comprendre est une fonction qui incrémente.
L'erreur n'est pas dans le code, enfin vous allez voir.

Dim Table(62) As Byte
Dim Cpt       As Long

Private Sub Form_Load()
    Dim i As Integer
    Table(0) = 32
    For i = 1 To 26: Table(i) = i + 96: Next
    For i = 27 To 52: Table(i) = i + 38: Next
    For i = 53 To 62:  Table(i) = i - 5: Next
Timer1.Enabled = true
Timer1.Interval = 1
Timer1.Interval = 1
End sub

Private Sub Timer1_Timer()
    Dim i As Long
    Dim s As String
    Cpt = Cpt + 1
    i = Cpt
    While i > 0
       s = Chr$(Table(i Mod 63)) & s
       i = i \ 63
       Wend
    Text1 = s
End Sub

Il y a bien sure un text1.box
Donc jusque ici rien d'anormale. > il incrémente toujours et toujours
Mais en faite moi j'aimerais qu'il commence a incrémenter a partir d'un mot donné.
Donc par ex je met dans laod : text1.text = "mot". Puis quand il a fini de passer par le load, il incrémente "mot" donc on aura "not","oot","pot",... Et c'est cela le problème.
C'est qu'il ne veut rien savoir.
Si je lui dit que le texte a incrémenter est "mot" il commence toujours par a.
J'ai bien essaye de refiler mot "mot" qq part mais sans aucunes effet.
Donc j'aimerais avoir l'avis d'un expert (enfin d'un plus doué que moi quoi > c pas dur a trouver) qui puisse me garder ce code intacte et me dire où je dois placer mon "mot".

Merci encore de vos réponses.
dimanche 27 février 2005 à 06:25:22 | Re : svp, au bord du suicide

cbnet

Ecoute, c'est peut-être moi, mais je trouve que ton algorithme est un peu bizarre ! Moi je peux rien faire avec ce code, je te conseille de partir sur autre chose car ce que tu veux faire est assez simple pourtant (si j'ai bien compris). Ce que je peux te dire, c'est que tu te plantes au moins sur 1 point : " Si je lui dit que le texte a incrémenter est "mot" il commence toujours par a."
Peux tu me dire à quel moment tu dis à ton prog de se servir de "mot" ou de ce qu'il y a dans ta textbox pour commencer à incrémenter ??
Si il commence toujours par a, c'est simple, tu ne te sers à aucun moment de "mot" dans ta boucle while, i commence par 1, et s = chr$(Table(i mod 63)) te renverra forcément un a au premier tour puisque Table(1) vaut 97 (nombre ASCII de a)...

Réfléchis 5 min, et recommence ton code à zéro, c'est un conseil.
Bonne chance
dimanche 27 février 2005 à 11:52:53 | Re : svp, au bord du suicide

Gobillot

ton code est bien puisque c'est le mien.
il faut démarrer avec un compteur qui correspond à la valeur de "mot"

Daniel
dimanche 27 février 2005 à 12:30:08 | Re : svp, au bord du suicide

saveourssouls

cbnet, je ne t'ai pas attendu pour faire ca, mais il me mettait une erreur de capacité.
Gobillot, comment je fais ca?
Je sais que je dois faire quelque chose avec Cpt, j'ai bien essayer mais sans résultat. Vu que je vois pas où Cpt est défini comme valeur. Je connais pas sa valueur de départ.(on ne le dit nule part) > on dit juste que cpt est égale a cpt+1
dimanche 27 février 2005 à 13:14:31 | Re : svp, au bord du suicide

Gobillot


Cpt n'est pas initialisé donc sa valeur de départ est égal à zéro.
la valeur d'un mot est calculé sur une base de 63
63 = (espace + 26 lettres minuscules + 26 lettres majuscules + 10 chiffres)

"m" --> 13 * 632 = 51597
"o" --> 15 * 631 =   945
"t" --> 20 * 630 =    20
                 ────────
           total   52562
 
donc la valeur de départ est 52561 puisqu'on fait Cpt = Cpt + 1

Dim i As Integer
Dim j As Integer
Dim p As Integer
Dim s As String

s = "mot"
    
For i = 1 To Len(s)
      p = Asc(Mid$(s, i, 1))
      For j = 0 To 62
            If p = Table(j) Then Exit For
            Next
      Cpt = Cpt + (j * 63 ^ (Len(s) - i))
      Next
Cpt = Cpt - 1

' controle
Timer1_Timer


en modifiant la routine de calcul, on obtient d'autres valeurs:

Private Sub Timer1_Timer()
    Dim i As Long
    Dim s As String
    i = Cpt
    While i > 0
       s = s & Chr$(Table(i Mod 63))
       i = i \ 63
       Wend
    Text1 = s
    Cpt = Cpt + 1
End Sub

"m" --> 13 * 630 =    13
"o" --> 15 * 631 =   945
"t" --> 20 * 632 = 79380
                 ────────
           total   80337


Dim i As Integer
Dim j As Integer
Dim p As Integer
Dim s As String

s = "mot"

For i = 1 To Len(s)
       p = Asc(Mid$(s, i, 1))
       For j = 0 To 62
            If p = Table(j) Then Exit For
            Next
       Cpt = Cpt + (j * 63 ^ (i - 1))
       Next

' controle
Timer1_Timer


Daniel
dimanche 27 février 2005 à 14:25:02 | Re : svp, au bord du suicide

saveourssouls

Alors là, j'ai totu ompris mais le problème c'est que ca ne marche pas.
Pourtant je suis sure d'avoir tout bien fait.
Lorsque je met donc que s = "mot" avec la routine que tu ma montrée en haut rien ne se lance.
dimanche 27 février 2005 à 14:36:45 | Re : svp, au bord du suicide

Gobillot

Lorsque j'arrive après calcul (1er cas) avec Cpt =52561 et que j'appelle le Timer une fois, "mot" doit s'afficher dans le TextBox , preuve que le calcul est bon, donc "mot" correspond bien au nombre 52561.
c'était seulement un contrôle ...
sinon après calcul de Cpt, tu continues ton programme normalement avec:
Timer1.Enabled = true
Timer1.Interval = 1
et le timer devrait redémarrer à partir du point où il en était.


Daniel
dimanche 27 février 2005 à 14:43:01 | Re : svp, au bord du suicide

saveourssouls

Oui c'est tout a fait ce que jai fait et pourtant rien ne se lance.
J'ai mis tout pourtant et j'ai tout compris.
Pourtant quand je compile aucune erreur.
dimanche 27 février 2005 à 14:53:49 | Re : svp, au bord du suicide

Gobillot

essayes avec une valeur de Timer1.Interval un peu plus grande parce que 1 ça me paraît un peu faible, donc il a pas le temps d'afficher dans le TextBox ou alors en insérant un DoEvents.
sinon chez moi ça marche même avec 1 et sans DoEvents. mais j'ai pas essayé en compilé.

Daniel
dimanche 27 février 2005 à 15:05:29 | Re : svp, au bord du suicide

saveourssouls

Tu peux me mettre toute la source. J'ai peut etre foiré qq chose mais je vois vraiment pas.

1 2

Cette discussion est classée dans : table, mot, cpt, timer1, incrémente


Répondre à ce message

Sujets en rapport avec ce message

Ajouter [ par saveourssouls ] J'aimerais savoir si vous connaissiez le lien d'une source ou de tête : en fait j'aimerais augmenter (incrementer) un mot a partir d'une table. Donc i Table hiérarchique dans un TreeView en ADO [ par nihaoma ] Bonjour tout le mondeJ'ai un p'tit soucis avec une manipulation d'enregistrement de type Recordset, j'espères que quelqu'un pourra m'aider.Voila, j'ac pretction d'un formauliare [ par sergeszebe ] Bonjour,j'ai un  probleme,ndans un appli existante en VBA 2002,il ya dans une fenetre un bouton evaluation sur le quel les prof clique pour evaluer le Reconnaissance d'un mot de passe et d'un login [ par willbie ] bonjour à tous!j'ai fait une relation entre une table access (dont les champs sont:login et mot de passe)et un formulaireVB par la connexion ODBC.Ce q Mot de passe [ par Novice en VB ] J'ai une BD Access qui tourne derrière mon interface VB mais je souhaite pouvoir me connecter en utilisant des mots de passe qui sont dans une table d Suppression d'un mot dans une chaine [ par bary59 ] Bonjour,Dans ma table, chez un champ qui contient par exemple : Epouse BAJRKLJERMon projet effectue une requete sur cette table pour l'exporter dans e Décrypter le mot de passe de la table MSysAccount [ par stephvi ] Bonjour,J'utilise une base de sécurité mdw pour mon application Access et VB.Dans VB, j'aimerais pouvoir récupérer le mot de passe de la table MSysAcc Lien ODBC - Mot de Passe [ par Ant8386 ] Bonjour,Voici le contexte de mon problème :Je suis dans le code VBA d'une base Access qu'on va nommer A.mdb et j'ouvre une connection sur une autre ba Table miroir [ par osta ] Bonjour,Je voulais faire une table miroir d'une table importante de ma base de données sur un autre PC de mon réseau. A chaque insertion d'un nouvel e cacher le mot de passe en table Access [ par paolo12 ] bonjouren fete, j'ai fait une table avec Access ou j'ai mis le mot de passe de mon application VB, je veux savoir comment cacher le mot de passe pour


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,796 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales