Moulinette pour extraire @ d'un fichier txt

Fermé
Nono44 Messages postés 10 Date d'inscription mercredi 19 juillet 2006 Statut Membre Dernière intervention 29 mai 2007 - 10 août 2006 à 18:22
 LAAMEED - 7 juin 2011 à 12:58
Bonjour à tous,

Je suis nul en programmation et je cherche une "moulinette" qui saurait extraire d'un fichier txt des adresses email. En gros savoir trouver le @ et aller à l'espace d'avant et à l'espace d'apres et créer une liste de tous les emails trouvés.

Si on pousse un peu plus le bouchon ca serait d'avoir une petite interface sympa qui nous demande ou est le fichier texte à traiter (avec bouton parcourir par exemple) , une fois le fichier sélectionné elle se mettrait au boulot et établirait la liste.

si quelqu'un trouve ça simple, n'hésitez pas m'aider.

A bientot

Arnaud

12 réponses

lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
10 août 2006 à 19:51
Salut,

Peut être il faut peaufiner la regex ;)

#!/usr/bin/perl
#
use warnings;use strict;

$,="\n";
print map { /\S+?\@[^@\();:,\\]+\.\w{2,4}/g } `cat email.txt`;

__END__
lami20j
1
Obeet Messages postés 1766 Date d'inscription jeudi 14 octobre 2004 Statut Modérateur Dernière intervention 17 novembre 2010 30
10 août 2006 à 20:32
1
arth Messages postés 9374 Date d'inscription mardi 27 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2016 1 291
10 août 2006 à 20:41
Moi je veux bien aussi seulement voila il faut python, tout dumoins l'installer à mon avis ce qu'elle veut c'est un programme tout fait.

un exe ca serait mieux je pense (pas les outils sous la main tout de suite : ) )
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
10 août 2006 à 20:55
Salut,

il faut le faire sous Linux (tout est dédans), gratuit en plus.

lami20j
0
Lust Messages postés 243 Date d'inscription mercredi 28 septembre 2005 Statut Membre Dernière intervention 12 septembre 2007 123
10 août 2006 à 20:45
mon truc est un exe et si on me le demande, je peux l'étendre sur d'autre fichier que le txt
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
10 août 2006 à 21:31
Salut,

Si c'est un exe tu peux le donner ici ou meme le lien pour le récupérer pourquoi tout ca pour si peu franchement

Pour Lust
envoyer de gros fichiers pieces jointes par mail
et/ou
https://www.cjoint.com/

lami20j

P.S. Je suis d'accord avec jipicy
Le savoir n'est bon que s'il est partagé.
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
10 août 2006 à 22:04
Re,

Ne t'emporte pas comme ça ;)
C'est toi plutôt qui dégénérer les choses

j'ai pris le temps de construire un prog

Ben, moi je l'ai fait en 10 secondes et il est gratuit moulinette pour extraire d un fichier txt#2

Tu pourras faire pareil, mais c'est vrai tu n'est pas obligé.

lami20j
0
Lust Messages postés 243 Date d'inscription mercredi 28 septembre 2005 Statut Membre Dernière intervention 12 septembre 2007 123
10 août 2006 à 22:20
J'ai pas envi de me prendre la tete avec ca.... ceux qui ont le framework, ca va s'installer vite, sinon, le framework va prendre bcp de temps à installer .... a vous de voir... mais ce framework peux vous servir sur d'autres choses à l'avenir... voila le lien du zip :

http://www.e-rus.net/Extract%20Mail.zip

Désolé, y a encore mon adresse dedans.... mais c'est direct sur le zip.

Je sais, c'est bcp de foin pour pas grand chose, mais je n'ai fais qu'essayer d'aider et quand on me saute dessus comme ca... enfin, le truc de demander l'adresse, c'etais plus pour que les gens qui l'utilise puisse m'indiquez un eventuel bug ou une éventuelle amélioration... peut importe ca marchera... ca marchera pas...
0
Armojax Messages postés 1858 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 22 mars 2024 1 528
11 août 2006 à 13:20
Pour le fun, en VBA. Suffit d'avoir Excel.
La moulinette propose Parcourir..., et c'est tout.
https://www.cjoint.com/?ilntcsBQKd
... si y'a pas de bug !!!
0
Nono44 Messages postés 10 Date d'inscription mercredi 19 juillet 2006 Statut Membre Dernière intervention 29 mai 2007
11 août 2006 à 14:19
Quand je le lance il demande une feuille de style pr_demande.ccs.
0
Armojax Messages postés 1858 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 22 mars 2024 1 528 > Nono44 Messages postés 10 Date d'inscription mercredi 19 juillet 2006 Statut Membre Dernière intervention 29 mai 2007
11 août 2006 à 14:48
Pour le moment je ne vois pas. Je n'ai pas ce cas...
Si quelqu'un a une piste ?
0
Armojax Messages postés 1858 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 22 mars 2024 1 528
11 août 2006 à 16:06
Vraiment désolé de ne pas pouvoir te dépanner... Je fais fonctionner la macro sans PB à partir d'un petit fichier texte fabriqué à la main.
Ça m'est difficile de débugger à distance sans être dans le même environnement.
Si quelqu'un veut bien essayer à partir d'un petit fichier texte contenant entre autres quelques adresse e-mail, pour voir...
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
11 août 2006 à 16:33
Salut Armojax,

chez moi ça marche aussi sans problèmes.
Tu peux afficher le code de la macro ici pour qu'il adapte à son cas.

Je ne le fait pas moi puisque c'est toi qui l'a écrit.

lami20j

P.S. Le mien je l'ai affiché dans le message N°2
0
Armojax Messages postés 1858 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 22 mars 2024 1 528
11 août 2006 à 17:14
Merci lami20j d'avoir testé de ton côté.

Il y a d'une part la macro dans un module :
Option Explicit

Sub RechMails()

  Application.ScreenUpdating = False

  Dim Lig     As Long
  Dim Col     As Integer
  Dim FicPath As String
  Dim Cellule As Range
  Dim Ligne   As Long
  Dim EstMail As Variant
  
  FicPath = Application.GetOpenFilename("Text Files (*.txt), *.txt")
  If FicPath = "Faux" Then
    ThisWorkbook.Close
  End If
  
  Workbooks.OpenText Filename:=FicPath, _
                     DataType:=xlDelimited, _
                     Space:=True
  
  ActiveSheet.Name = "Source"
  Lig = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row
  Col = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Column
  
  ActiveWorkbook.Sheets.Add
  ActiveSheet.Name = "Résultat"
  
  Sheets("Source").Activate
  Ligne = 0
  On Error Resume Next
  For Each Cellule In Range(Cells(1, 1), Cells(Lig, Col))
    EstMail = Application.WorksheetFunction.Search("@", Cellule)
    If EstMail <> "" Then
      Ligne = Ligne + 1
      Sheets("Résultat").Cells(Ligne, 1).Value = Cellule.Value
    End If
    EstMail = ""
  Next
  On Error GoTo 0
  Sheets("Résultat").Activate
  Application.DisplayAlerts = False
  Sheets("Source").Delete
  Application.DisplayAlerts = True
  Columns("A:A").AutoFit
  Application.ScreenUpdating = True
  
  ThisWorkbook.Close
    
End Sub
Et d'autre part l'appel de cette macro à l'Open du classeur, donc dans le code de ThisWorkbook :
Option Explicit

Private Sub Workbook_Open()
  Call RechMails
End Sub


Nono44, dans un premier temps laisse tomber le lancement automatique, et déroule en pas à pas, pour voir...
0
Bonjour,
j'ai un fichier word ou txt ou je dispose d'un fichier comprenant la structure le nom le prénom l'adresse du site l'email... et je cherche à en faire une mailing liste ou seuls les adresse email séparées par des ; figurent.
Si quelqun sait ce serait cool
merci
0
Bonjour,

Ceci va t'aider

<?php

$html = 'collecte des adresses mail
toto@gmail.com; sjqt900@yahoo.fr
voila@nnas.com
';

preg_match_all("/([a-z.-_0-9]*)[@]([a-z]*)[.]([comfrg]{2,3})/", $html, $matches, PREG_SET_ORDER);

foreach ($matches as $val) {
echo $val[0] ."<br>";
}


?>
0
Merci Nass

Je rajouterais ceci (-) pour la recherche et cela (;) pour le résultat exportable sous excel

preg_match_all("/([a-z.-_-0-9]*)[@]([a-z]*)[.]([comfrg]{2,3})/", $html, $matches, PREG_SET_ORDER);

foreach ($matches as $val) {
echo $val[0] .";<br>";
0
Merci beaucoup, il m'a été très utile

Comment mettre tout ça en formulaire pour ne pas éditer à chaque fois le code source ? merci
0
C'est bon j'ai trouvé :

<?php

error_reporting(0);


function email_parser($str)
{
$str = strtolower($str);
$pattern = ''[a-z0-9][-_\.a-z0-9]+[a-z0-9]@[-\.a-z0-9]+[a-z]'';

preg_match_all($pattern, $str, $matches);
$out = $matches[0];
$out = array_unique($out);
sort($out);

return $out;
}


?>
<form action="" method="post">
<textarea cols="40" rows="7" style="width:98%" name="in"><?php echo $_POST['in'] ?></textarea><br />
<input type="submit" value="Parse !" />
</form>

<?php if(count($_POST)) : ?>
<?php $emails = email_parser($_POST['in']) ?>
<hr />
<h4><?php echo count($emails) ?> adresses</h4>
<pre><?php echo implode("\n", $emails) ?></pre>
<?php endif ?>
0