[UDF] RegExp - Extraction des adresses Mail d'un fichier.
Posté : jeu. 28 août 2008 01:55
Voici un script qui vous permettra d'extraire les adresses Mail d'un fichier quelconque en éliminant les doublons possible.
J'ai trouvé le pattern de l'expression régulière sur le forum Anglais, ainsi que la fonction _ArrayUnique que j'ai recopié tel quel.
Vous constaterez aussi qu'il n'y à aucun Include.
Pour faire au plus simple, je n'ai pas mis les contrôles d'ouverture et écriture des fichiers.
J'ai trouvé le pattern de l'expression régulière sur le forum Anglais, ainsi que la fonction _ArrayUnique que j'ai recopié tel quel.
Vous constaterez aussi qu'il n'y à aucun Include.

Pour faire au plus simple, je n'ai pas mis les contrôles d'ouverture et écriture des fichiers.
Code : Tout sélectionner
#cs ----------------------------------------------------------------------------
AutoIt Version : 3.2.12.0
Auteur: Tlem
Fonction du Script :
Extraction des adresses Email d'une page HTML avec filtrage de doublons.
#ce ----------------------------------------------------------------------------
$InputFile = "Recup_Email.htm"
$OutputFile = "Liste_Email.txt"
$File = FileRead($InputFile)
$aEmail = StringRegExp($File, "mailto:([A-Za-z0-9._%-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4})", 3)
If Not @error Then
$aFilteredEmail = _ArrayUnique($aEmail, '', 0)
Dim $Res
For $i = 1 To $aFilteredEmail[0]
$Res &= $aFilteredEmail[$i] & @CRLF
Next
FileWrite($OutputFile, $Res)
EndIf
ShellExecute($OutputFile)
Exit
Func _ArrayUnique(ByRef $aArray, $vDelim = '', $iBase = 1, $iUnique = 1)
If $vDelim = '' Then $vDelim = Chr(01)
Local $sHold
For $iCC = $iBase To UBound($aArray) - 1
If Not StringInStr($vDelim & $sHold, $vDelim & $aArray[$iCC] & $vDelim, $iUnique) Then _
$sHold &= $aArray[$iCC] & $vDelim
Next
Return StringSplit(StringTrimRight($sHold, StringLen($vDelim)), $vDelim)
EndFunc ;==>_ArrayUnique