Page 1 sur 1
[R] Récupérer les données d'un fichier (txt, log, etc..)
Posté : mer. 09 juil. 2008 14:40
par DimVar
Bonjour à tous,
Je cherche un petit script qui me mettrai sur la voie ...
Je souhaiterais pouvoir récupérer (dans des variables) les "zones" (separées par un delimiteur ";" ou "/" ) contenues dans un fichier texte.
Je ne connais pas de commande pour faire ca.
Ex :
- toto.txt (fichier à analyser)
- contenu de toto.txt :
Nom de server / user / mdp / domaine / date / (ceci est l'entete du fichier)
ISIS / jean / jean8855 / mydomain / 08.06.08 / (ceci est une ligne du fichier)
D'avance merci pour vos propositions !
[EDIT]n'hesitez pas à commenter (;) les commandes utilisées.

Re: [..] Récupérer les données d'un fichier (txt, log, etc..)
Posté : mer. 09 juil. 2008 16:13
par Tlem
Utilisez la commande StringSplit (L'exemple de l'aide ce suffit pour les explications).
Re: [..] Récupérer les données d'un fichier (txt, log, etc..)
Posté : mer. 09 juil. 2008 21:51
par timmalos
► Afficher le texteCode
Code : Tout sélectionner
$fichier = FileOpen("toto.txt",0)
$texte = FileRead($fichier)
$Mots = StringSplit($texte,"/")
_ArrayDisplay($Mots,"Code By Tim")
Re: [..] Récupérer les données d'un fichier (txt, log, etc..)
Posté : ven. 11 juil. 2008 12:15
par DimVar
Impec, merci à tous !

Re: [..] Récupérer les données d'un fichier (txt, log, etc..)
Posté : dim. 13 juil. 2008 15:49
par DimVar
Je re-ouvre le post pour trouver une autre reponse. A la suite de ce script, je souhaiterais ré-ecrire les données recuperées (nom de server / user / mdp / domaine / date ) dans un autre fichier, A LA PLACE DES ANCIENNES DONNEES...
EX :
Fichier d'origine : totoOri.txt
Fichier de destination : totoDst.txt
Contenu de totoOri.txt :
Nom de server / user / mdp / domaine / date / (ceci est l'entete du fichier)
ISIS / jean / jean8855 / hisdomain / 08.06.08 / (ceci est une ligne du fichier)
ISIS / jeanne / jeanne6688 / herdomain / 08.06.08 /
ISIS / phillipe / phillipe5544 / mydomain / 08.06.08 /
ISIS / gaetan / gaetan4477 / mydomain / 08.06.08 /
Contenu de totoDst.txt :
Nom de server / user / mdp / domaine / date / (ceci est l'entete du fichier)
ISIS / jean / jean8855 / hisdomain / 07.06.08 / (ceci est une ligne du fichier)
ISIS / jeanne / jeanne6688 / herdomain / 07.06.08 /
ISIS / phillipe / vide / mydomain / 0.06.08 /
ISIS / gaetan / vide / mydomain / 07.06.08 /
Autrement dit, je voudrais ré-écrire les nouveaux mot de passe de "phillipe et gaetan" du fichier totoOri.txt dans le fichier totoDst.txt, à la place de la chaine de caracteres "
vide".
J'ai bien trouvé les commandes filewriteline et filewrite mais je ne vois pas comment ajouter du texte sur une zone definie. J'ajoute lamentablement mes strings à la fin du fichier...
Merci de votre "Ôh patience".
Re: [R] Récupérer les données d'un fichier (txt, log, etc..)
Posté : dim. 13 juil. 2008 19:02
par Tlem
D'après les éléments que vous donnez, les fichiers totoOri.txt et totoDst.txt sont destinés à ce ressembler étrangement !!!
Il peut être plus judicieux dans ce cas de copier le fichier totoOri.txt et d'y apporter tout simplement les modifications que vous souhaitez ...
Si toutefois vous n'aviez pas donné la totalité des éléments à la compréhension de vos motivations, et que malgré tout vous vouliez continuer par la ré-écriture complète du fichier, alors pour mettre des informations dans 'les places vides', vous aller devoir lire et décomposer cette ligne, puis la re-composée et enfin la ré-écrire.
Donc dans l'ordre et de manière très succincte : FileReadLine, StringSplit, Traitement des éléments, FileWriteLine.
Re: [R] Récupérer les données d'un fichier (txt, log, etc..)
Posté : dim. 13 juil. 2008 19:22
par Tlem
Les fichiers totoOri.txt et totoDst.txt ce ressemble étrangement !!!
Il serait sans doute plus simple de copier le fichier d'origine, et d'y applique les modifications souhaitées.
Sinon pour faire ce dont vous avez parlez, de manière très succincte :
FileReadLine, StringSplit, Traitement des chaîne, puis FileWriteLine ...
Et oui il vous faut d'abord lire la ligne en entier puis la modifier et enfin la ré-écrire.