[BAT] comparer, écrire un mot dans un fichier
Résolu/Fermé
arthurg95
Messages postés
2421
Date d'inscription
dimanche 24 février 2008
Statut
Membre
Dernière intervention
4 juin 2014
-
20 sept. 2008 à 23:19
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 - 5 oct. 2008 à 13:07
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 - 5 oct. 2008 à 13:07
A voir également:
- [BAT] comparer, écrire un mot dans un fichier
- Creer un fichier .bat - Guide
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier rar - Guide
- Ouvrir un fichier .bin - Guide
22 réponses
cchristian
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
131
21 sept. 2008 à 16:33
21 sept. 2008 à 16:33
Bonjour,
ECHO OFF SETLOCAL ENABLEdelayedExpansion SETLOCAL ENABLEextensions CLS SET "fich_input=fich_input.txt" :INPUT SET /A nb_process=0 SET "string_input=" SET /P "string_input=entrez le nom de la nouvelle variable : " IF "%string_input%" == "" ( GOTO :EOF ) IF NOT EXIST %fich_input% ( ECHO fichier cree initialement par %0 Le %DATE% a %TIME% > %fich_input%) FOR /F "tokens=1* delims=" %%I IN ( ' TYPE !fich_input! ^| FINDSTR /I !string_input! ') DO ( SET /A nb_process+=1 ) IF !nb_process! == 0 ( ECHO !string_input! >> %fich_input% ) ELSE ( ECHO "- !string_input! Ce nom existe deja dans le fichier !fich_input!" GOTO INPUT) ENDLOCAL
arthurg95
Messages postés
2421
Date d'inscription
dimanche 24 février 2008
Statut
Membre
Dernière intervention
4 juin 2014
341
21 sept. 2008 à 16:46
21 sept. 2008 à 16:46
Je vien de regarder sa marche nikel merci beaucoup !
cchristian
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
131
21 sept. 2008 à 16:52
21 sept. 2008 à 16:52
Merci pour le retour, bon courage.
arthurg95
Messages postés
2421
Date d'inscription
dimanche 24 février 2008
Statut
Membre
Dernière intervention
4 juin 2014
341
23 sept. 2008 à 18:17
23 sept. 2008 à 18:17
RE ! Juste une petite question avec ce que tu m'a donné ....
Serait t'il possible que le nom entré se puisse etre utilisé autre par comme par exemple
echo +2 point %nom entré au départ% >> Point gagner.txt ???
Mais vers le fin du batch par contre ...
Serait t'il possible que le nom entré se puisse etre utilisé autre par comme par exemple
echo +2 point %nom entré au départ% >> Point gagner.txt ???
Mais vers le fin du batch par contre ...
cchristian
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
131
23 sept. 2008 à 19:29
23 sept. 2008 à 19:29
Bonjour,
Je ne comprends pas très bien le "+2 point". A quoi cela correspond-t-il ? Peux-tu me donner un exemple concret ?
Sur le principe tu peux effectivement réutiliser la variable %nom entré au départ% en fin de batch.
Une variables reste "active" durant tout le temps d'exécution du batch dans lequel elle est décrite, sauf bien entendu si dans ce même batch elle est annulée (ou modifiée) par une commande : SET "nom de la variable=".
Je ne comprends pas très bien le "+2 point". A quoi cela correspond-t-il ? Peux-tu me donner un exemple concret ?
Sur le principe tu peux effectivement réutiliser la variable %nom entré au départ% en fin de batch.
Une variables reste "active" durant tout le temps d'exécution du batch dans lequel elle est décrite, sauf bien entendu si dans ce même batch elle est annulée (ou modifiée) par une commande : SET "nom de la variable=".
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
arthurg95
Messages postés
2421
Date d'inscription
dimanche 24 février 2008
Statut
Membre
Dernière intervention
4 juin 2014
341
23 sept. 2008 à 21:00
23 sept. 2008 à 21:00
Le plus 2 point est un exemple en faite mon batch est "un jeu" pour le collège !
Comment peut on faire cette variable ?
Comment peut on faire cette variable ?
cchristian
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
131
23 sept. 2008 à 21:29
23 sept. 2008 à 21:29
Bonsoir,
En fait, il suffit de concaténer (mettre bout à bout) les éléments de la
chaîne de caractères que tu souhaites écrire dans le nouveau fichier
Point-gagner.txt.
Exemple :
Résultats (ligne écrite dans le fichier)
+2 point(s) nom_de_la_variable
En fait, il suffit de concaténer (mettre bout à bout) les éléments de la
chaîne de caractères que tu souhaites écrire dans le nouveau fichier
Point-gagner.txt.
Exemple :
.................................... SET "fich_points=Point-gagner.txt" .................................... .................................... rem Initialisation à 2 de la variable var_nb_point pour les besoins rem du test. SET /A var_nb_point = 2 .................................... .................................... .................................... rem Concaténation dans var_lib_point des éléménts constitutifs de la chaîne rem de caractères et écriture dans le fichier Point-gagner.txt. SET "var_lib_point=+!var_nb_point! point(s) !string_input!" ECHO %var_lib_point% >> %fich_points%
Résultats (ligne écrite dans le fichier)
+2 point(s) nom_de_la_variable
arthurg95
Messages postés
2421
Date d'inscription
dimanche 24 février 2008
Statut
Membre
Dernière intervention
4 juin 2014
341
24 sept. 2008 à 12:21
24 sept. 2008 à 12:21
Oui mais cela ne mais pas le nom mis au départ
Les point je les mais manuellement comme cela : echo +2 point >>result.txt
Puis je mettez un print pour imprimer la feuille mais cela ne serai pas pratique
Les point je les mais manuellement comme cela : echo +2 point >>result.txt
Puis je mettez un print pour imprimer la feuille mais cela ne serai pas pratique
cchristian
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
131
24 sept. 2008 à 13:57
24 sept. 2008 à 13:57
Bonjour,
Dans mon exemple (mal formulé en effet) :
Résultats (ligne écrite dans le fichier)
Il fallait comprendre
+2 point(s) nom_mis_au_depart
au lieu de
+2 point(s) nom_de_la_variable
Est-ce que ça répond à on interrogation ?
Dans mon exemple (mal formulé en effet) :
Résultats (ligne écrite dans le fichier)
Il fallait comprendre
+2 point(s) nom_mis_au_depart
au lieu de
+2 point(s) nom_de_la_variable
Est-ce que ça répond à on interrogation ?
arthurg95
Messages postés
2421
Date d'inscription
dimanche 24 février 2008
Statut
Membre
Dernière intervention
4 juin 2014
341
24 sept. 2008 à 14:46
24 sept. 2008 à 14:46
Et il faut mettre quoi comme nom de variable ? %fich_points% ?
Moi dans le fichier texte donné sa met : + 2 points
Ni de nom ni rien !
Moi dans le fichier texte donné sa met : + 2 points
Ni de nom ni rien !
arthurg95
Messages postés
2421
Date d'inscription
dimanche 24 février 2008
Statut
Membre
Dernière intervention
4 juin 2014
341
24 sept. 2008 à 14:51
24 sept. 2008 à 14:51
C'est bon sa marche merci bcp !!!!!!
arthurg95
Messages postés
2421
Date d'inscription
dimanche 24 février 2008
Statut
Membre
Dernière intervention
4 juin 2014
341
24 sept. 2008 à 15:00
24 sept. 2008 à 15:00
UN ÉNORME MERCI A TOI !
Le problème venais du ENDLOCAL je l'ai supprimer et sa marche bien !
Le problème venais du ENDLOCAL je l'ai supprimer et sa marche bien !
cchristian
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
131
24 sept. 2008 à 15:59
24 sept. 2008 à 15:59
Bonne continuation,
arthurg95
Messages postés
2421
Date d'inscription
dimanche 24 février 2008
Statut
Membre
Dernière intervention
4 juin 2014
341
2 oct. 2008 à 13:12
2 oct. 2008 à 13:12
Juste encore une petite question
Est-ce possible que les point se mette tous sur la même ligne ?
exemple : J'ai déja gagner 2 point donc sa m'affiche
Arthur +2
Si je regagne des point je voudrai que sa affiche
Arthur +2 +2 ....
Si c'est trop compliquer laisse tombé ! sa serai juste pour que je gagne du temps car l'application sera mise au collège et si 400 élèves participe ... Ça va être chaud !
Merci encore !
Est-ce possible que les point se mette tous sur la même ligne ?
exemple : J'ai déja gagner 2 point donc sa m'affiche
Arthur +2
Si je regagne des point je voudrai que sa affiche
Arthur +2 +2 ....
Si c'est trop compliquer laisse tombé ! sa serai juste pour que je gagne du temps car l'application sera mise au collège et si 400 élèves participe ... Ça va être chaud !
Merci encore !
cchristian
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
131
2 oct. 2008 à 15:31
2 oct. 2008 à 15:31
Bonjour,
Est-ce possible que les point se mette tous sur la même ligne ?
exemple : J'ai déja gagner 2 point donc sa m'affiche
Arthur +2
Si je regagne des point je voudrai que sa affiche
Arthur +2 +2 ....
Je ne connais pas suffisamment la cinématique de fonctionnement de ton jeu pour te répondre précisément.
(Pour cette raison ce qui suit représente un schéma de propositions et n'a donc pas été testé)
Si le second +2 (ou le énième +x) peut être déterminé avant la fin de l"exécution du batch OU plus pécisémént avant l'écriture dans le fichierPoint-gagner.txt" et ce pour une même exécution du batch, il suffit alors de "différer dans ton algorithme (la logique d"exécution) l'écriture dans le fichier et au préalable de concaténer le second +2 (ou le énième +x) à la variable var_lib_point :
Si le second +2 (ou le énième +x) n'est déterminé qu'à la prochaîne exécution du batch OU plus pécisémént après l'écriture dans le fichierPoint-gagner.txt" et ce pour un même joueur, il est alors nécessaire de lire le fichier pour retrouver le nom du joueur actif éventuellement présent dans ce fichier.
Dis-moi ce que tu penses de tout cela.
Est-ce possible que les point se mette tous sur la même ligne ?
exemple : J'ai déja gagner 2 point donc sa m'affiche
Arthur +2
Si je regagne des point je voudrai que sa affiche
Arthur +2 +2 ....
Je ne connais pas suffisamment la cinématique de fonctionnement de ton jeu pour te répondre précisément.
(Pour cette raison ce qui suit représente un schéma de propositions et n'a donc pas été testé)
Si le second +2 (ou le énième +x) peut être déterminé avant la fin de l"exécution du batch OU plus pécisémént avant l'écriture dans le fichierPoint-gagner.txt" et ce pour une même exécution du batch, il suffit alors de "différer dans ton algorithme (la logique d"exécution) l'écriture dans le fichier et au préalable de concaténer le second +2 (ou le énième +x) à la variable var_lib_point :
.................................... SET "fich_points=Point-gagner.txt" .................................... SET /A var_nb_point = 2 .................................... rem Concaténation dans var_lib_point des éléménts constitutifs de la chaîne rem de caractères le nom du joueur (string_input) est mis en tête rem (cas 1ère fois). SET "var_lib_point=!string_input! + !var_nb_point!" :BCL_points_par joueur rem Nouvelles valeurs prises par la variable var_nb_point pour .................................... SET /A var_nb_point = ????? rem (c'est ta logique d'exécution qui doit renseigner la variable) .................................... .................................... rem Nouvelle concaténation dans var_lib_point des nombres de points rem pour un même joueur. SET "var_lib_point=!var_lib_point! + !var_nb_point!" rem Pour être cohérent et pouvoir ajouter à plusieurs reprises un rem nombre de points par joueur la séquence comprise entre : rem BCL_points_par joueur et ce commentaire doit s'inscrire dans rem un boucle illustrée par : rem IF NOT "fin_de_partie_même joueur..." GOTO :BCL_points_par joueur. rem l'écriture dans le fichier Point-gagner.txt est "repoussé" rem Si tu tiens à conserver le libellé "point(s)" SET "var_lib_point=!var_lib_point! point(s) !string_input!" ECHO %var_lib_point% >> %fich_points%
Si le second +2 (ou le énième +x) n'est déterminé qu'à la prochaîne exécution du batch OU plus pécisémént après l'écriture dans le fichierPoint-gagner.txt" et ce pour un même joueur, il est alors nécessaire de lire le fichier pour retrouver le nom du joueur actif éventuellement présent dans ce fichier.
.................................... SET "fich_points=Point-gagner.txt" SET "var_lib_point=!string_input!" .................................... IF NOT EXIST %fich_pointsi% ( ECHO fichier cree initialement par %0 Le %DATE% a %TIME% > %fich_points%) rem Recherche si le joueur (string_input) à déjà joué ...... précédemment FOR /F "tokens=1* delims=" %%I IN ( ' TYPE !fich_input! ^| FINDSTR /I !string_input! ') DO ( SET "var_lib_point=%%I" ) rem Nouvelle valeur prise par la variable var_nb_point pour .................................... SET /A var_nb_point = ????? rem (c'est ta logique d'exécution qui doit renseigner la variable) .................................... .................................... rem Nouvelle concaténation dans var_lib_point des nombres de points rem pour un même joueur. SET "var_lib_point=!var_lib_point! + !var_nb_point!" rem NB. A ce niveau il faut prévoir une séquence d'annulation de l'éventuelle rem ligne du fichier idendifiant le joueur et son remplacement (ci-dessous) rem par la nouvelle ligne représentée par le contenu de la variable rem var_lib_point. rem l'écriture dans le fichier Point-gagner.txt rem Si tu tiens à conserver le libellé "point(s)" SET "var_lib_point=!var_lib_point! point(s) !string_input!" ECHO %var_lib_point% >> %fich_points%
Dis-moi ce que tu penses de tout cela.
arthurg95
Messages postés
2421
Date d'inscription
dimanche 24 février 2008
Statut
Membre
Dernière intervention
4 juin 2014
341
2 oct. 2008 à 18:33
2 oct. 2008 à 18:33
Voila le code du batch je ne comprend pas ou est ce que tu veu que je mette cela !
@echo off
title Fiche Metier par les eleves de DP3
ECHO OFF
color 0C
SETLOCAL ENABLEdelayedExpansion
SETLOCAL ENABLEextensions
CLS
SET "fich_input=fich_input.txt"
:INPUT
SET /A nb_process=0
SET "string_input="
SET /P "string_input=Entrer votre NOM et votre Prenom (NOM en Majuscule et Prenom Premiere lettre en majuscule SANS ACCENTS ^!) : "
IF "%string_input%" == "" ( GOTO :EOF )
IF NOT EXIST %fich_input% (
ECHO fichier cree initialement par %0 Le %DATE% a %TIME% > %fich_input%)
FOR /F "tokens=1* delims=" %%I IN (
' TYPE !fich_input! ^| FINDSTR /I !string_input! ') DO (
SET /A nb_process+=1 )
IF !nb_process! == 0 (
ECHO !string_input! >> %fich_input%
) ELSE (
ECHO "- !string_input! Vous avez deja participe au jeu "
pause
GOTO fin2)
cls
SET "fich_points=Point-gagner.txt"
rem Initialisation à 2 de la variable var_nb_point pour les besoins
rem du test.
SET /A var_nb_point = 2
Set /A var_nb_point1 = 1
rem Concaténation dans var_lib_point des éléménts constitutifs de la chaîne
rem de caractères et écriture dans le fichier Point-gagner.txt.
SET "var_lib_point=+!var_nb_point! point(s) !string_input!"
SET "var_lib_point1=+!var_nb_point1! point(s) !string_input!"
Start Diapo1.pps
Echo Patiente le diaporama va demarrer ^!
ping 127.1.1.1 -n 3 > nul
cls
echo Ecris le nom des metiers en MAJUSCULE
set choice=
set /p choice=A quel metier cela correspond-t-il ?
If %choice%==FRIGORISTE goto vrai
if not %choice%==FRIGORISTE goto faux
:vrai
Echo Bravo
Echo Tu gagnes 2 points
ECHO %var_lib_point% >> %fich_points%
goto fin
:faux
Echo Non ce n'est pas cela
Echo N^'oublie pas de mettre le nom du metier tout en MAJUSCULE ^!
:erreur1
set choice=
set /p choice= Veux-tu revoir le diaporama, Et avoir une deuxieme chance ? [Oui ou Non]
If %choice%==Oui goto 2emechance
If %choice%==Non goto Non
If not %choice%==Oui goto erreur
:Non
set choice
cls
set /p choice= Veux-tu retenter ta chance sans voir le diaporama ? [Oui ou Non]
If %choice%==Oui goto 2emechance2
If %choice%==Non goto fin
If not %choice%==Oui goto erreur2
:2emechance2
set choice=
set /p choice=Alors a quel metier cela correspond-t-il ?
If %choice%==FRIGORISTE goto vrai2
if not %choice%==FRIGORISTE goto faux2
:erreur2
cls
Echo Tu a mal saisis la reponse
echo Recommence
echo Met bien une majuscule au debut de ton choix comme indique ^!
goto 2emechance2
:2emechance
start diapo1.pps
set choice=
set /p choice=A quel metier cela correspond-t-il ?
If %choice%==FRIGORISTE goto vrai2
if not %choice%==FRIGORISTE goto faux2
:erreur
cls
Echo Tu a mal saisis la reponse
echo Recommence
echo Met bien une majuscule au debut de ton choix comme indique ^!
goto erreur1
:vrai2
Echo Bravo ^!
echo Tu gagnes 1 point
ECHO %var_lib_point1% >> %fich_points%
goto fin
:faux2
Echo Tu n'a pas reussi a trouver le metier
Echo Tu ne gagnes pas de point cette fois
Echo Tu sauras la reponse dans la prochaine fiche metier ^!
:fin
Echo Appuie sur une touche pour fermer
pause> nul
:fin2
exit
@echo off
title Fiche Metier par les eleves de DP3
ECHO OFF
color 0C
SETLOCAL ENABLEdelayedExpansion
SETLOCAL ENABLEextensions
CLS
SET "fich_input=fich_input.txt"
:INPUT
SET /A nb_process=0
SET "string_input="
SET /P "string_input=Entrer votre NOM et votre Prenom (NOM en Majuscule et Prenom Premiere lettre en majuscule SANS ACCENTS ^!) : "
IF "%string_input%" == "" ( GOTO :EOF )
IF NOT EXIST %fich_input% (
ECHO fichier cree initialement par %0 Le %DATE% a %TIME% > %fich_input%)
FOR /F "tokens=1* delims=" %%I IN (
' TYPE !fich_input! ^| FINDSTR /I !string_input! ') DO (
SET /A nb_process+=1 )
IF !nb_process! == 0 (
ECHO !string_input! >> %fich_input%
) ELSE (
ECHO "- !string_input! Vous avez deja participe au jeu "
pause
GOTO fin2)
cls
SET "fich_points=Point-gagner.txt"
rem Initialisation à 2 de la variable var_nb_point pour les besoins
rem du test.
SET /A var_nb_point = 2
Set /A var_nb_point1 = 1
rem Concaténation dans var_lib_point des éléménts constitutifs de la chaîne
rem de caractères et écriture dans le fichier Point-gagner.txt.
SET "var_lib_point=+!var_nb_point! point(s) !string_input!"
SET "var_lib_point1=+!var_nb_point1! point(s) !string_input!"
Start Diapo1.pps
Echo Patiente le diaporama va demarrer ^!
ping 127.1.1.1 -n 3 > nul
cls
echo Ecris le nom des metiers en MAJUSCULE
set choice=
set /p choice=A quel metier cela correspond-t-il ?
If %choice%==FRIGORISTE goto vrai
if not %choice%==FRIGORISTE goto faux
:vrai
Echo Bravo
Echo Tu gagnes 2 points
ECHO %var_lib_point% >> %fich_points%
goto fin
:faux
Echo Non ce n'est pas cela
Echo N^'oublie pas de mettre le nom du metier tout en MAJUSCULE ^!
:erreur1
set choice=
set /p choice= Veux-tu revoir le diaporama, Et avoir une deuxieme chance ? [Oui ou Non]
If %choice%==Oui goto 2emechance
If %choice%==Non goto Non
If not %choice%==Oui goto erreur
:Non
set choice
cls
set /p choice= Veux-tu retenter ta chance sans voir le diaporama ? [Oui ou Non]
If %choice%==Oui goto 2emechance2
If %choice%==Non goto fin
If not %choice%==Oui goto erreur2
:2emechance2
set choice=
set /p choice=Alors a quel metier cela correspond-t-il ?
If %choice%==FRIGORISTE goto vrai2
if not %choice%==FRIGORISTE goto faux2
:erreur2
cls
Echo Tu a mal saisis la reponse
echo Recommence
echo Met bien une majuscule au debut de ton choix comme indique ^!
goto 2emechance2
:2emechance
start diapo1.pps
set choice=
set /p choice=A quel metier cela correspond-t-il ?
If %choice%==FRIGORISTE goto vrai2
if not %choice%==FRIGORISTE goto faux2
:erreur
cls
Echo Tu a mal saisis la reponse
echo Recommence
echo Met bien une majuscule au debut de ton choix comme indique ^!
goto erreur1
:vrai2
Echo Bravo ^!
echo Tu gagnes 1 point
ECHO %var_lib_point1% >> %fich_points%
goto fin
:faux2
Echo Tu n'a pas reussi a trouver le metier
Echo Tu ne gagnes pas de point cette fois
Echo Tu sauras la reponse dans la prochaine fiche metier ^!
:fin
Echo Appuie sur une touche pour fermer
pause> nul
:fin2
exit
cchristian
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
131
2 oct. 2008 à 19:36
2 oct. 2008 à 19:36
Le tout est de savoir si tu souhaites, par joueur, conserver on non l'historique de sa (ou ses) précédente(s) parties. Sachant q'une partie correspond à l'exécution de ton batch. En d'autres termes peut-on avoir dans le fichier %fich_points% les cas suivants:
1ère exécution du batch :
début d'exécution
fich_points : ne contient pas le nom ni les point du joueur considéré.
fin d'exécution
fich_points contient : nom_du_joueur +2
2ème exécution du batch : MEME JOUEUR
début d'exécution
fich_points contient : nom_du_joueur +2 récupération des valeurs
fin d'exécution
fich_points : nom_du_joueur +2 +3
ènième exécution du batch : MEME JOUEUR
début d'exécution
............................................
ou bien chaque joueur ne peut jouer q'une seule fois (comme ça semble etre le cas)
1ère exécution du batch :
début d'exécution
fich_points : ne contient pas le nom ni les point du joueur considéré.
fin d'exécution
fich_points contient : nom_du_joueur +2 +3
1ère exécution du batch :
début d'exécution
fich_points : ne contient pas le nom ni les point du joueur considéré.
fin d'exécution
fich_points contient : nom_du_joueur +2
2ème exécution du batch : MEME JOUEUR
début d'exécution
fich_points contient : nom_du_joueur +2 récupération des valeurs
fin d'exécution
fich_points : nom_du_joueur +2 +3
ènième exécution du batch : MEME JOUEUR
début d'exécution
............................................
ou bien chaque joueur ne peut jouer q'une seule fois (comme ça semble etre le cas)
1ère exécution du batch :
début d'exécution
fich_points : ne contient pas le nom ni les point du joueur considéré.
fin d'exécution
fich_points contient : nom_du_joueur +2 +3
arthurg95
Messages postés
2421
Date d'inscription
dimanche 24 février 2008
Statut
Membre
Dernière intervention
4 juin 2014
341
2 oct. 2008 à 20:39
2 oct. 2008 à 20:39
Le joueur peut jouer une seul fois jusqu'a se que je supprime Fich_input.txt
Les fiches métier seront actualisé toute les semaine, le fichier fich_input sera supprimé chaque semaine !
Les fiches métier seront actualisé toute les semaine, le fichier fich_input sera supprimé chaque semaine !
cchristian
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
131
2 oct. 2008 à 22:46
2 oct. 2008 à 22:46
Si je regagne des point je voudrai que sa affiche
Arthur +2 +2 .
Je ne vois pas dans la logique de fonctionnement de ton programme batch à quel "moment", dans quelle séquence d'instructions, le joueur est susceptible de gagner des points supplémentaires,
Voila le code du batch je ne comprend pas ou est ce que tu veu que je mette cela !
alors je suis bien embêté pour répondre à ta question et te dire où insérer la séquence.
C'est la raison pour laquelle dans ma proposition de mon précédent message j'évoque la nécessité d'un traitement répétitif que j'ai illustré par une "boucle" qui contiendrait la logique d'exécution correspondant aux questions/réponses adressées au même joueur.
Par exemple un même joueur disposerait de deux tentatives à deux points, sur des thèmes ou sujets différents
Autrement je ne vois pas très bien comment on peut se retrouver avec un enregistrement dans le fichier correspondant à : Arthur +2 +2
Dis moi ce que tu comptes faire,
Arthur +2 +2 .
Je ne vois pas dans la logique de fonctionnement de ton programme batch à quel "moment", dans quelle séquence d'instructions, le joueur est susceptible de gagner des points supplémentaires,
Voila le code du batch je ne comprend pas ou est ce que tu veu que je mette cela !
alors je suis bien embêté pour répondre à ta question et te dire où insérer la séquence.
C'est la raison pour laquelle dans ma proposition de mon précédent message j'évoque la nécessité d'un traitement répétitif que j'ai illustré par une "boucle" qui contiendrait la logique d'exécution correspondant aux questions/réponses adressées au même joueur.
rem Pour être cohérent et pouvoir ajouter à plusieurs reprises un rem nombre de points par joueur la séquence comprise entre : rem BCL_points_par joueur et ce commentaire doit s'inscrire dans rem un boucle illustrée par : rem IF NOT "fin_de_partie_même joueur..." GOTO :BCL_points_par joueur.
Par exemple un même joueur disposerait de deux tentatives à deux points, sur des thèmes ou sujets différents
Autrement je ne vois pas très bien comment on peut se retrouver avec un enregistrement dans le fichier correspondant à : Arthur +2 +2
Dis moi ce que tu comptes faire,
arthurg95
Messages postés
2421
Date d'inscription
dimanche 24 février 2008
Statut
Membre
Dernière intervention
4 juin 2014
341
3 oct. 2008 à 09:18
3 oct. 2008 à 09:18
Le fichier fich_input.txt est supprimer chaque semaine donc les éléve pourront recommencer le "jeu"...
Bien sur la réponse sera differente !
Mais bon si c'est trop compliquer de mettre tout les point sur la meme ligne, je le ferai manuellement !
Merci quand meme !
Bien sur la réponse sera differente !
Mais bon si c'est trop compliquer de mettre tout les point sur la meme ligne, je le ferai manuellement !
Merci quand meme !
cchristian
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
131
4 oct. 2008 à 15:50
4 oct. 2008 à 15:50
Bonjour,
C’est assez lourd en effet, voilà comment je vois les choses :
Il faut ajouter une routine assurant, pour un même joueur, soit la mise à jour de l'enregistrement (Cas modification) existant dans le fichier fich_points (si le joueur a déjà participé au jeu) soit la création (Cas création) d'un nouvel enregistrement dans ce même fichier fich_points (si le joueur joue pour la première fois).
Cas modification :
La notion de "mise à jour" d'un enregistrement dans le fichier fich_points est à considérer, pour un même joueur, relativement aux (tentatives de) jeux s'inscrivant dans l'intervalle de temps qui sépare plus de deux annulations du fichier fich_input.txt (car dans l'intervalle de temps (1 semaine) qui sépare deux annulations de ce fichier, le joueur n’a droit qu’à une seule partie , Cas création ).
Cas création :
La notion de "création" d'un enregistrement dans le fichier fich_points est à considérer, pour un même joueur, relativement au (à la tentative du) premier jeu effectué après annulation du fichier fich_points ou après sa création initiale (car pour un second ou enième jeu il s'agirait d'une (tentative de) mise à jour, Cas modification).
Il faut par conséquent effectuer les opérations suivantes sur le fichier fich_points:
Recherche de présence d’un enregistrement identifiant le joueur afin de différencier le cas modification du cas création.
Si présence de l’enregistrement (cas modification) il faut récupérer dans une variable le contenu de l’enregistrement accédé (c.-à-d. les points de la (des) partie(s) précédente(s)). Puis recopier le fichier fich_point dans un fichier temporaire (de travail) en éliminant l’enregistrement accédé. A la séquence d’écriture dans le fichier il faut annuler le fichier fich_points et le recréer avec le contenu du fichier temporaire + le contenu de la variable (lequel contenu a logiquement évolué avec les point de la partie en cours). Enfin il faut annuler le fichier temporaire.
Si absence d’enregistrement (cas création) il suffit d’écrire le contenu de la variable, contenant l’identifiant du joueur et les point de la partie en cours, dans le fichier fich_points.
Critiquable et à critiquer..............
C’est assez lourd en effet, voilà comment je vois les choses :
Il faut ajouter une routine assurant, pour un même joueur, soit la mise à jour de l'enregistrement (Cas modification) existant dans le fichier fich_points (si le joueur a déjà participé au jeu) soit la création (Cas création) d'un nouvel enregistrement dans ce même fichier fich_points (si le joueur joue pour la première fois).
Cas modification :
La notion de "mise à jour" d'un enregistrement dans le fichier fich_points est à considérer, pour un même joueur, relativement aux (tentatives de) jeux s'inscrivant dans l'intervalle de temps qui sépare plus de deux annulations du fichier fich_input.txt (car dans l'intervalle de temps (1 semaine) qui sépare deux annulations de ce fichier, le joueur n’a droit qu’à une seule partie , Cas création ).
Cas création :
La notion de "création" d'un enregistrement dans le fichier fich_points est à considérer, pour un même joueur, relativement au (à la tentative du) premier jeu effectué après annulation du fichier fich_points ou après sa création initiale (car pour un second ou enième jeu il s'agirait d'une (tentative de) mise à jour, Cas modification).
Il faut par conséquent effectuer les opérations suivantes sur le fichier fich_points:
Recherche de présence d’un enregistrement identifiant le joueur afin de différencier le cas modification du cas création.
Si présence de l’enregistrement (cas modification) il faut récupérer dans une variable le contenu de l’enregistrement accédé (c.-à-d. les points de la (des) partie(s) précédente(s)). Puis recopier le fichier fich_point dans un fichier temporaire (de travail) en éliminant l’enregistrement accédé. A la séquence d’écriture dans le fichier il faut annuler le fichier fich_points et le recréer avec le contenu du fichier temporaire + le contenu de la variable (lequel contenu a logiquement évolué avec les point de la partie en cours). Enfin il faut annuler le fichier temporaire.
Si absence d’enregistrement (cas création) il suffit d’écrire le contenu de la variable, contenant l’identifiant du joueur et les point de la partie en cours, dans le fichier fich_points.
Critiquable et à critiquer..............
arthurg95
Messages postés
2421
Date d'inscription
dimanche 24 février 2008
Statut
Membre
Dernière intervention
4 juin 2014
341
4 oct. 2008 à 16:05
4 oct. 2008 à 16:05
Bon sa a l'air compliquer !!
Je pense que je vais faire manuellement. Ça a l'air vraiment dur a mettre en place !
Merci beaucoup pour ton aide jusqu'à présent !
Je pense que je vais faire manuellement. Ça a l'air vraiment dur a mettre en place !
Merci beaucoup pour ton aide jusqu'à présent !
cchristian
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
131
5 oct. 2008 à 02:37
5 oct. 2008 à 02:37
Bonsoir,
Voici une routine qui te permettra d'aligner les scores de chaque joueur ayant déjà obtenu des points et également d'intégrer tout nouveau joueur dans le fichier fich_points.
Si tu veux l'intégrer dans ton code, iI semble qu'il n'y ait pas grand chose à changer :
(Il est trop tard pour que je m"en occupe.)
Tiens-moi informé, merci.
Voici une routine qui te permettra d'aligner les scores de chaque joueur ayant déjà obtenu des points et également d'intégrer tout nouveau joueur dans le fichier fich_points.
:ALIGN_POINTS rem Fichier de travail. SET "fich_temp=temp-gagner.txt" rem Par défaut présomption du cas de Création par ex: UNETELLE_Marie. SET "Var_lib_points_joueur=%string_input%" IF NOT EXIST %fich_points% ( ECHO fichier cree initialement par %0 Le %DATE% a %TIME% > %fich_points% ) ELSE ( rem Recherche dans le fichier fich_points de la présence d’un enregistre- rem ment identifiant le joueur. Ceci afin de différencier le cas modifi- rem cation (présence) du cas création (absence Var_lib_points_joueur n'est rem pas modifiée). FOR /F "tokens=1* delims=$" %%J IN ( ' TYPE %fich_points% ^| FINDSTR /I /C:"%string_input%" ') DO ( rem Identification du cas Modification, récupération des infos des rem jeux précédents dans Var_lib_points_joueur ex: UNTEL_Olivier +1 +2 SET "Var_lib_points_joueur=%%J" ) ) rem Recopiage du contenu du fichier fich_points moins l'enregistrement du rem joueur en cours (s'il existe) dans le fichier de travail fich_temp. FOR /F "tokens=1* delims=" %%K IN ( ' TYPE %fich_points% ^| FINDSTR /R /V /I /C:"%string_input%" ') DO ( ECHO %%K>>%fich_temp% ) rem Ecriture du contenu de la variable Var_lib_points_joueur dans le fichier rem fich_temp, laquelle contient soit rem les données d'une création ex: UNETELLE_Marie +2 soit rem celles d'une modification ex: UNTEL_Olivier +1 +2 +2 rem agrémentées du nombre de points obtenu au cours de cette partie. ECHO !Var_lib_points_joueur! +!var_lib_point!$>>%fich_temp% rem Destruction de "l'ancien" fichier fich_points (non à jour des données du rem joueur en cours) DEL %fich_points% rem Re-création du fichier fich_points à partir du fichier fich_temp (à jour rem avec les données du joueur en cours, soit UNTEL Olivier +1 +2 +2, soit rem UNETELLE Marie +2) REN %fich_temp% %fich_points% GOTO fin
Si tu veux l'intégrer dans ton code, iI semble qu'il n'y ait pas grand chose à changer :
(Il est trop tard pour que je m"en occupe.)
SET "var_lib_point=+!var_nb_point! point(s) !string_input!"à remplacer par :
SET "var_lib_point=+!var_nb_point!"et
SET "var_lib_point1=+!var_nb_point1! point(s) !string_input!"à remplacer par :
SET "var_lib_point1=+!var_nb_point1!"
ECHO %var_lib_point% >> %fich_points% goto finà remplacer par :
goto ALIGN_POINTSet
ECHO %var_lib_point1% >> %fich_points% goto finà remplacer par :
goto ALIGN_POINTS
Tiens-moi informé, merci.