Traitement sur un fichier passwd

Résolu
Messages postés
25
Date d'inscription
jeudi 11 décembre 2003
Statut
Membre
Dernière intervention
5 août 2016
-
Messages postés
25
Date d'inscription
jeudi 11 décembre 2003
Statut
Membre
Dernière intervention
5 août 2016
-
Bonjour,

Je souhaite dupliquer mon fichier passwd dans un fichier mon_passwd.

Ensuite dans mon fichier mon_passwd doit subir un remaniement expliqué par l'exemple ci-dessous :

En gras, les données qui m'intéressent...
En brut sur passwd j'aurai :
toto.titi:x:2185:100::/home/toto.titi:/bin/false

Pour au final n'avoir que le nom d'utilisateur dans mon fichier mon_passwd soit :
toto.titi

Pour corser le tout, sachez qu'il existe un grand nombre d'utilisateur dans passwd et que forcément le nom de caractères attribués au nom d'utilisateur varie.

Pour ceux qui n'ont pas compris, j'aimerai parcourir ligne par ligne le fichier passwd, en extraire les caractères correspondant à l'utilisateur jusqu'au caractère "butoire" ---> :

J'attends vos suggestions avec impatience.

@ntone reloaded!!!

7 réponses

Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
19
En fait, je ne sais pas si c'est le nom ou le password, mais le "toto.titi" se trouverait dans le premier élément du tableau

Tablo = Split(LigneLue, ":")
Tablo(0) contiendra toto.titi

MPi
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
Le mieux étant, non pas de dupliquer ton fichier, mais plutot de lire le premier, traiter la ligne et écrire au fur et à mesure le résultat dans le second.
Soit en VB6 :

Une petite boucle avec
- Instruction Line Input pour lire une ligne dans le fichier
- Instruction InStr pour retrouver l'index du premier caractère :
- Instruction Left pour prendre tous les caractères à partir du premier jusqu'à n. n représentant ici le dernier caractère avant le :, soit l'index retourné par Instr -1.
- et enfin l'intsruction Print pour écrire le résultat dans le nouveau fichier.

JE te laisse parcourir l'aide en ce qui concerne ces instructions, et je presume que tu sais ouvrir un fichier tant en lecture qu'en ecriture (voir l'instruction Open).

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
25
Date d'inscription
jeudi 11 décembre 2003
Statut
Membre
Dernière intervention
5 août 2016

Salut Casy,

Oui pour ouvrir un fichier en lecture/ecriture y'a pas de soucis.

Je vais étudier ses différentes fonctions pour les appliquer à mon projet.

Merci  pour l'aide. J'ajoute des news sur ce forum dès que j'ai du nouveau.

@ntone reloaded!!!
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
19
Tu pourrais aussi utiliser Split avec le ":" comme séparateur après lecture de chaque ligne du fichier.
Ce qui te donnerait le password dans tablo(0), tablo étant la variable-tableau utilisée pour le Split

MPi
Messages postés
551
Date d'inscription
samedi 8 janvier 2005
Statut
Membre
Dernière intervention
12 avril 2008
2
un TextFieldParser serait cool aussi ...
Messages postés
25
Date d'inscription
jeudi 11 décembre 2003
Statut
Membre
Dernière intervention
5 août 2016

Merci MPi  pour ta suggestion mais en aucun cas je ne souhaite travailler sur les mot de passe (qui en md5 ne me servent à rien...). L'important : les noms d'utilisateurs qu'il me faut <<sortir>> de ce fichier passwd.

Il faut que je regarde aussi la proposition de allthew3 avec le TextFieldParser, je ne connais pas encore...

@ntone reloaded!!!
Messages postés
25
Date d'inscription
jeudi 11 décembre 2003
Statut
Membre
Dernière intervention
5 août 2016

Salut MPi !

Je veux le nom d'utilisateur. J'essaie ton code et te dis quoi.

@ntone reloaded!!!