Associer une variable a un mot dans un fichier ou repertoire

V4L36 -  
 V4L36 -
j'ais essayer plusieurs commande que j'ais trouver sur votre forum mais pour moi aucune ne fonctionnent . . .
soit il m’affiche rien du tout
soit il m'affiche un message d'erreur comme quoi il ne peut accéder a mon fichier/répertoire
je voudrais par exemple associer aux variables suivante :
%pseudo% le 2 ieme mot de la 1ière ligne de mon fichier test.txt
%clickerpoints% le 2 ième mot de la 3ième ligne de mon fichier test.txt (les chifres)
%mdp% le 4 ième mot de la 3ière ligne de mon fichier test.txt (que se sois des chiffres ou des lettres
fichier test.txt ici :

Pseudonyme : V4L36
Clicker :
[tabulation] points : 458
[tabulation] nombre de connexions : 3
Mot de passe : azerty
fréquence de connexion : 5

j'attend les explication pour comprendre ce langage et non les réponse direct comme certain forum le font . . .
merci de votre aide =D

1 réponse

  1. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 929
     
    Bonjour,

    Je commence par les explications :

    - pour parcourir les lignes de ton fichier, tu as besoin de la boucle FOR /F
    - pour savoir à quel ligne tu te trouves, tu as besoin d'une variable qui s'incrémente de 1 à chaque tour de boucle
    - pour récupérer un mot dans une ligne, tu as besoin d'une boucle FOR /F

    Si tu as besoin d'aide pour écrire le script fais-moi signe.


    “L'intelligence artificielle se définit comme le contraire de la bêtise naturelle.”
    0
    1. V4L36 Messages postés 3 Statut Membre 2
       
      merci beaucoup mais pourrais tu me donner un exemple? stp =D j'essai cela
      for /f "skip=0 tokens=2 delims= " %a in ("comptes\test.txt") do set pseudo=%a

      cela ne me donne rien quand je echo %a ou %pseudo%
      0
    2. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 929 > V4L36 Messages postés 3 Statut Membre
       
      Tu vas trop vite, on va déjà commencer par le début, c'est-à-dire parcourir chaque ligne du fichier texte :

      cd /d "c:\Users\V4L36\Comptes"
      for /f "usebackq tokens=*" %A in ("test.txt") do (echo %A)
      pause
      0
    3. V4L36
       
      cela me met " a était inattendu"
      0
    4. V4L36
       
      c'est bon jaui trouver !!! merci beacoup mais j'ai un autre probleme maintenant
      je ne trouve pas l'erreur dans ce code :
       set /p pseudo=
      if exist comptes\%pseudo%\%pseudo%.txt (
      for /f "usebackq tokens=1" %%a in ("comptes\%pseudo%\mdp.txt") do (
      %c% 0e 1 " "
      %c% 0f 0 "Met ton "
      %c% 0b 1 "Mot de passe "
      %c% 0b 0 "Mot de passe"
      %c% 0f 0 " > "
      set /p mdp=
      if %mdp% EQU %%a (
      goto :suite
      ) else (
      cls
      %c% 0c 1 "ERREUR #3 : Movais mot de passe"
      %c% 07 1 "appuie sur une touche pour ressayer"
      pause >nul
      goto :logreg
      )
      )
      ) else (
      @echo %pseudo% > comptes\%pseudo%\%pseudo%.txt
      %c% 0e 1 " "
      %c% 0f 0 "Met ton "
      %c% 0b 1 "Mot de passe "
      %c% 0b 0 "Mot de passe"
      %c% 0f 0 " > "
      set /p mdp=
      %c% 0f 0 "Remet ton "
      %c% 0b 1 "Mot de passe "
      %c% 0b 0 "Mot de passe"
      %c% 0f 0 " > "
      set /p mdp2=
      if %mdp% EQU %mdp2% (
      @echo %mdp% > comptes\%pseudo%\mdp.txt
      %c% 0f 0 "Compte "
      %C% 0e 0 "%pseudo% "
      %c% 0f 1 "a ete cree avec succes !"
      %c% 07 1 "appuie sur une touche pour continuer. . ."
      ) else (
      %c% 0c 1 "Erreur #4 : Les pseuso entre ne correspondent pas"
      %c% 07 1 "appuie sur une touche pour retourner au menu de login/register"
      pause >nul
      goto :logreg
      )
      %c% 0f 0 "Compte "
      %C% 0e 0 "%pseudo% "
      %c% 0f 1 "a ete cree avec succes !"
      )

      (le %c% 0a 0 "text" est juste une sorte de echo mai sen couleur) l'erreur fait comme si c’était une "(" ou ")" qui manque mais je ne trouve pas
      0
    5. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 929 > V4L36
       
      Difficile de t'aider, il manque la moitié du code.

      Un conseil : on évite de mettre un GOTO dans une boucle FOR.

      Voilà quelques modifications :

      Setlocal enableextensions enabledelayedexpansion

      :debut
      set /p "pseudo="

      if exist "comptes\%pseudo%\%pseudo%.txt" (call :verification)
      if not exist "comptes\%pseudo%\%pseudo%.txt" (call :creation)

      goto :debut
      exit

      :verification
      for /f "usebackq tokens=1" %%a in ("comptes\%pseudo%\mdp.txt") do (set password=%%a)

      %c% 0e 1 " "
      call :saisie "Met"
      set /p "mdp="

      if /i "%mdp%" =="!password!" (goto :suite) else (
      cls
      %c% 0c 1 "ERREUR #3 : Mauvais mot de passe"
      %c% 07 1 "appuie sur une touche pour re-essayer"
      pause >nul
      goto :verification
      )

      goto :eof

      :saisie
      %c% 0f 0 "%~1 ton "
      %c% 0b 1 "Mot de passe "
      %c% 0b 0 "Mot de passe"
      %c% 0f 0 " > "
      goto :eof

      :creation
      @echo %pseudo% > comptes\%pseudo%\%pseudo%.txt
      %c% 0e 1 " "
      call :saisie "Met"
      set /p "mdp="

      call :saisie "Remet"
      set /p "mdp2="
      if /i "%mdp%"=="%mdp2%" (
      @echo %mdp% > comptes\%pseudo%\mdp.txt
      %c% 0f 0 "Compte "
      %C% 0e 0 "%pseudo% "
      %c% 0f 1 "a ete cree avec succes !"
      %c% 07 1 "appuie sur une touche pour continuer. . ."
      ) else (
      %c% 0c 1 "Erreur #4 : Les pseudos saisis ne correspondent pas"
      %c% 07 1 "appuie sur une touche pour retourner au menu de login/register"
      pause >nul
      goto :eof
      )

      %c% 0f 0 "Compte "
      %C% 0e 0 "%pseudo% "
      %c% 0f 1 "a ete cree avec succes !"
      goto :eof

      rem
      0