Recherche et suppresion des elements dans fichiers txte en batch
mfeyet
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
Quester4 Messages postés 136 Date d'inscription Statut Membre Dernière intervention -
Quester4 Messages postés 136 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'aimerai savoir comment faire une recherche dans un fichier texte par exemple dans un annuaire telephonique qui recherche un numero entrer par l'utilisateur et affiche toutes ses donees(nom,mumero,age) .
et j'aimerais savoir comment supprimer un abonees dans un fichier txt sachant son numero
merci
et voici une portion du code que j'ai commencer
@echo off
cls
color 3F
:debut
echo ÉÍÍÍÍÍÍÍÍ»
echo º MENU º
echo ÉÍÍÍÍÍÍÍͼ
echo 1. ajouter un abonne
echo 2. supprimer un abonne
echo 3. rechercher un abonne connaissant son numero
echo 4.afficher tous les abonnes
echo entrer votre choix
set /p choix=
if "%choix%"=="1" goto suite1
if "%choix%"=="4" goto suite2
echo.
:suite1
echo entrer le nom
set /p nom=
echo nom: %nom% >>identification.txt
echo entrer le prenom
set /p prenom=
echo prenom: %prenom% >>identification.txt
echo entrer l'age
set /p age=
echo age: %age% >>identification.txt
echo entrer le sexe F/M
set /p sexe=
echo sexe : %sexe% >>identification.txt
echo entrer le numero
set /p numero=
echo numero: %numero% >>identification.txt
goto end
: end
echo voulez vous continuer o/n
set /p x=
if "%x%"=="o" goto debut
if"%x%"=="n" pause>nul
:suite2
type identification.txt
goto end
j'aimerai savoir comment faire une recherche dans un fichier texte par exemple dans un annuaire telephonique qui recherche un numero entrer par l'utilisateur et affiche toutes ses donees(nom,mumero,age) .
et j'aimerais savoir comment supprimer un abonees dans un fichier txt sachant son numero
merci
et voici une portion du code que j'ai commencer
@echo off
cls
color 3F
:debut
echo ÉÍÍÍÍÍÍÍÍ»
echo º MENU º
echo ÉÍÍÍÍÍÍÍͼ
echo 1. ajouter un abonne
echo 2. supprimer un abonne
echo 3. rechercher un abonne connaissant son numero
echo 4.afficher tous les abonnes
echo entrer votre choix
set /p choix=
if "%choix%"=="1" goto suite1
if "%choix%"=="4" goto suite2
echo.
:suite1
echo entrer le nom
set /p nom=
echo nom: %nom% >>identification.txt
echo entrer le prenom
set /p prenom=
echo prenom: %prenom% >>identification.txt
echo entrer l'age
set /p age=
echo age: %age% >>identification.txt
echo entrer le sexe F/M
set /p sexe=
echo sexe : %sexe% >>identification.txt
echo entrer le numero
set /p numero=
echo numero: %numero% >>identification.txt
goto end
: end
echo voulez vous continuer o/n
set /p x=
if "%x%"=="o" goto debut
if"%x%"=="n" pause>nul
:suite2
type identification.txt
goto end
A voir également:
- Recherche et suppresion des elements dans fichiers txte en batch
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Renommer des fichiers en masse - Guide
- Fichier batch - Guide
- Photoshop elements gratuit - Télécharger - Retouche d'image
- Fichiers epub - Guide
1 réponse
Salut,
Le code que tu cherches est assez simple.
Pour la recherche :
Ce code va trouver dans le fichier toutes les lignes contenant le numéro.
Par contre, il y a un problème, c'est que tu devrais mettre dans ton fichier tous les identifiants entrés sur la même ligne. Comme ceci :
Ainsi, un utilisateur aura une seule ligne, au lieu de 5. Ce qui va te permettre de les retrouver.
Inversement, tu peux supprimer des abonnés avec la même commande :
Le paramètre /v permet de trouver toutes les lignes n'ayant pas la chaîne spécifiée.
Par contre, il faut savoir que plusieurs utilisateurs peuvent être supprimés par erreur, c'est assez dangereux.
Exemple :
Utilisateur A, numéro 34
Utilisateur B, numéro 534
Supprimer l'utilisateur A supprimera aussi l'utilisateur B, car il contient "34" dans son numéro.
Enfin, si ce sont des numéros à taille fixe ce genre de problèmes ne devrait pas se produire.
En espérant t'avoir aidé,
Quester4
Le code que tu cherches est assez simple.
Pour la recherche :
findstr "%numero%" fichier.txt
Ce code va trouver dans le fichier toutes les lignes contenant le numéro.
Par contre, il y a un problème, c'est que tu devrais mettre dans ton fichier tous les identifiants entrés sur la même ligne. Comme ceci :
echo %nom%;%prenom%;%age%;%sexe%;%numero%>>identification.txt
Ainsi, un utilisateur aura une seule ligne, au lieu de 5. Ce qui va te permettre de les retrouver.
Inversement, tu peux supprimer des abonnés avec la même commande :
echo Vous allez supprimer l'utilisateur suivant : findstr "%numero%" identification.txt echo Voulez-vous vraiment continuer ? set /p valid=o/n if /i "%valid%"=="n" goto :debut findstr /v "%numero%" identification.txt>temp.temp type temp.temp>identification.txt del temp.temp echo L'utilisateur a ete supprime.
Le paramètre /v permet de trouver toutes les lignes n'ayant pas la chaîne spécifiée.
Par contre, il faut savoir que plusieurs utilisateurs peuvent être supprimés par erreur, c'est assez dangereux.
Exemple :
Utilisateur A, numéro 34
Utilisateur B, numéro 534
Supprimer l'utilisateur A supprimera aussi l'utilisateur B, car il contient "34" dans son numéro.
Enfin, si ce sont des numéros à taille fixe ce genre de problèmes ne devrait pas se produire.
En espérant t'avoir aidé,
Quester4