[R] Filtrer un fichier

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
jcaspar
Niveau 7
Niveau 7
Messages : 449
Enregistré le : mar. 23 sept. 2008 17:58
Status : Hors ligne

[R] Filtrer un fichier

#1

Message par jcaspar »

B :D onjour à tous !

Je souhaiterais lire le contenu d'un fichier et supprimer les données qui ne m'intéressent pas
et créer un nouveau fichier qui ne comprennent que les données que je souhaite.

Pouvez vous svp m'expliquer comment procéder pour filtrer le contenu du fichier en l’occurrence
ce fichier comprend tous les liens d'un site web. Je souhaiterais uniquement conserver les liens comprenant le mot réunion.

Je vous remercie pour vos conseils

Jean-Marc
Modifié en dernier par jcaspar le jeu. 09 juil. 2015 15:04, modifié 1 fois.
Avatar du membre
TopXm
Niveau 6
Niveau 6
Messages : 260
Enregistré le : mer. 25 mai 2011 16:37
Localisation : Usa
Status : Hors ligne

Re: [..] Filtrer un fichier

#2

Message par TopXm »

Bonsoir,

Il y a sans aucun doute plus rapide, mais dans le principe ceci devrait fonctionner :
  • Lecture fichier en entrée Ligne à ligne
  • Si la recherche aboutit alors on écrit la ligne dans le fichier en sortie

Code : Tout sélectionner

If Not FileExists('MyFileIn.txt') Then
    MsgBox(16, 'Recherche réunion', 'Fichier input Inexistant')
    Exit
EndIf

Local $hFileIn = FileOpen('MyFileIn.txt')
Local $hFileOut = FileOpen('MyFileOut.txt', 2)
Local $Buff = ''

While 1
    $Buff = FileReadLine($hFileIn)
    If @error Then ExitLoop
    If StringInStr($Buff, 'réunion') > 0 Then FileWriteLine($hFileOut, $Buff)
WEnd
FileClose($hFileOut)
FileClose($hFileIn)
ShellExecute('MyFileOut.txt')
Exit
 
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Filtrer un fichier

#3

Message par orax »

J'étais parti sur autre chose avec StringRegExp.

Code : Tout sélectionner

#include <File.au3>
#include <StringConstants.au3>
$sFile = FileRead('test.txt')
$a = StringRegExp($sFile, '.*réunion.*', $STR_REGEXPARRAYGLOBALMATCH)
_FileWriteFromArray('test2.txt', $a)
Alternative avec StringRegExpReplace. Toutes les lignes où "réunion" n'est pas trouvé sont supprimées.

Code : Tout sélectionner

$sFile = FileRead('test.txt')
$sFile2 = StringRegExpReplace($sFile, '(?im)^(?!.*réunion).*(?:\R|$)', '')
FileWrite('test2.txt', $sFile2)
https://regex101.com/r/lX1fA7
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Répondre