IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Trouver une adresse mail dans un fichier word


Sujet :

Langage Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juin 2006
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 38
    Points : 28
    Points
    28
    Par défaut Trouver une adresse mail dans un fichier word
    Bonjour,

    Voici mon problème et je suis une débutante en Java,

    J'ai un répertoire qui contient plusieurs CV word. Le but étant de pourvoir récupérer toutes les adresses e-mails qui se trouvent dans chaque CV et de les stocker ensuite sur un autre fichier (txt ou doc ou n'importe quoi).

    Pour le moment, je suis bloquée à 100%. Merci beaucoup!!!!

    Voici un petit algorithme que je comptais implémenter:

    1- accéder au répertoire
    2- récupérer le nom des fichiers ".doc" et les mettres dans un tableau
    3- fonction récolter mail
    Pour chaque fichier du tableau
    {
    - chercher l'adresse mail dans ce fichier
    - stocker ce mail dans un fichier ".txt" par exemple
    } (ainsi de suite)

    En sortie, on a un simple fichier avec une liste de mails!!!!!!!!!

    Merci d'avance!

  2. #2
    Membre régulier Avatar de calypso
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 102
    Points : 100
    Points
    100
    Par défaut
    Bonjour,

    Quelle étape te bloque ?

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juin 2006
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 38
    Points : 28
    Points
    28
    Par défaut
    tout car je suis une vraie débutante!!!

    déjà comment récupérer dans un tableau la liste des fichiers words d'un répertoire donné!!!

    puis comment retrouver une adresse mail dans un fichier word. on m'a dit que c'est pas facile car un fichier word c'est tout sauf du texte comme sur le bloc note. il y a la mise en forme et tout!!!! que ce n'est pas du code ascii et qu'il faut un api spécial pour ça!!!! mais je ne m'y connais pas du tout!!!!!!!!!

  4. #4
    Membre régulier Avatar de calypso
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 102
    Points : 100
    Points
    100
    Par défaut
    Pour commencer, la première étape.

    Tu crée un objet File qui va representer le repertoire que tu dois explorer.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    File dir = new File(**chemin de ton fichier**);
    Ensuite tu recherches les fichiers qui correspondent à ce que tu veux avec la méthode listFiles.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    File[] doc_files = null;
    if(dir.exists())
    {
       doc_files = dir.list_files(new FileFilter(){
          public boolean accept(File pathname)
          {
             if(Pattern.matches(".*\\.doc",pathname.getName()))
             {
                 return true;
             }
              return false;
          }
       });
    );
    }
    J'ai créé une classe anonyme. Tu peux aussi créer ta classe MyFileFilter que tu appeleras avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    doc_files = dir.list_files(new MyFileFilter());
    On n'oublie bien sur pas la gestion des exceptions

    Calpyso

  5. #5
    Nouveau membre du Club
    Inscrit en
    Juin 2006
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 38
    Points : 28
    Points
    28
    Par défaut
    d'accord, je vais voir ça et je vous donnerai ici les codes quand je les aurai fini jusqu'au bout.

    est-ce que c'est bien fondé le fait qu'il faut un api spécial pour pouvoir récupérer uniquement le texte qui se trouve dans un document word??? car apparement, dans un fichier word non seulement il y a le texte mais aussi le codage de la mise en forme!!!!

  6. #6
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    A part utiliser JCom pour utiliser des composants com avec java (mais je ne sais absolument pas s'il est possible de lire un document avec JCom), il n'existe pas d'API permettant d'iteragir directement avec un document word en java
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  7. #7
    Membre éclairé Avatar de g_rare
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 608
    Points : 683
    Points
    683
    Par défaut
    Citation Envoyé par vonitiana
    est-ce que c'est bien fondé le fait qu'il faut un api spécial pour pouvoir récupérer uniquement le texte qui se trouve dans un document word??? car apparement, dans un fichier word non seulement il y a le texte mais aussi le codage de la mise en forme!!!!
    Je pense que ça marche, car les fichiers Word utilisent des "balises" (de forme) sur du texte brut (le fond) : sauf si tes adresses mail peuvent être "formatées" différemment entre le début et la fin...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <debut_balise_pour_texte_en_gras>
    test@mail.com
    <fin_balise_pour_texte_en_gras>
    OK !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <debut_balise_pour_texte_en_gras>
    test@<debut_balise_pour_texte_en_italique>mail.com<fin_balise_pour_texte_en_italique>
    <fin_balise_pour_texte_en_gras>
    KO ?
    " Jag blev dömd för fildelning och allt jag fick var en sketen t-shirt. " (tankafritt.nu)
    PAS DE REPONSE PAR MESSAGE PRIVE ! Penser au bouton Résolu en bas de la discussion...

  8. #8
    Nouveau membre du Club
    Inscrit en
    Juin 2006
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 38
    Points : 28
    Points
    28
    Par défaut
    J'ai trouvé ça dans le fac Java de ce site. Il ne me reste plus qu'à récupérer l'adresse mail contenu dans chaque fichier word.

    Mais comment lui préciser que je ne veux que les ".doc"????

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    import java.io.File;
     
    public class FilenameFilter{
        public static void main(String args[]){
              try{
              File dir = new File("C:\\CVWORD");
     
              String[] children = dir.list();
                  if (children == null) {
                  System.out.println("Directory does not exist or is not a Directory");
                  } 
                  else {
                      for (int i=0; i<children.length; i++){                 // Get filename of file or directory
                      String filename = children[i];
                      System.out.println(filename);
                      }
                  }          
          }
          catch (Exception ioe){
              ioe.printStackTrace();
          }
      }
    }

  9. #9
    Membre éclairé Avatar de g_rare
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 608
    Points : 683
    Points
    683
    " Jag blev dömd för fildelning och allt jag fick var en sketen t-shirt. " (tankafritt.nu)
    PAS DE REPONSE PAR MESSAGE PRIVE ! Penser au bouton Résolu en bas de la discussion...

  10. #10
    Inactif  
    Inscrit en
    Avril 2005
    Messages
    750
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 750
    Points : 498
    Points
    498
    Par défaut
    Salut a vous, tout ça ne nous dit pas comment lire dans un fichier word si possible...

  11. #11
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Sisi réfère toi à mon poste précédent, tu auras ta réponse
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  12. #12
    Inactif  
    Inscrit en
    Avril 2005
    Messages
    750
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 750
    Points : 498
    Points
    498
    Par défaut
    Daccor il n'y a pas vraiment de solution pour lire dans un document word. En fait je crois qu'il existe une api capable de faire sa mais je ne l'ai jamais vraiment testé donc je sais pas vraiment si c'est efficace, c'est l'api POI
    voir http://java.developpez.com/outils/api/

  13. #13
    Membre chevronné
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Points : 2 208
    Points
    2 208
    Par défaut
    POI marche très bien pour les fichiers excel mais pas pour les documents word.
    En effet la partie de l'api qui s'occupe des fichier excel est bien maintenue ,contrairement à celle pour word qui semble étre abondonnée.


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  14. #14
    Nouveau membre du Club
    Inscrit en
    Juin 2006
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 38
    Points : 28
    Points
    28
    Par défaut
    Moi aussi, j'allais parler de la POI http://jakarta.apache.org/poi/ comme David! Je suis dessus mais je n'arrive pas à voir qu'est-ce qu'on peut y exploiter pour les fichiers words.

    Il n'y a pas d'autres moyens de récupérer alors le texte du word?

  15. #15
    Nouveau membre du Club
    Inscrit en
    Juin 2006
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 38
    Points : 28
    Points
    28
    Par défaut
    J'ai trouvé ça!!!!

    http://www.nevaobject.com/jddedetails.htm

    cf Documentation : http://www.nevaobject.com/_docs/_javadde/JavaDde.pdf

    Ca le fait non???

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    public class Dde2Word {
    public static void main(String args[]) {
    try {
    int timeout=5000;
    int j;
    int format=com.neva.DdeUtil.CF_TEXT;
    byte [] repl;
    String doc=null;
    String [] Topics;
    com.neva.DdeClient cli=new com.neva.DdeClient();
    //connect to MsWord
    cli.connect("WINWORD","System");
    //request the list of topics
    repl=cli.request("Topics",format,timeout);
    Topics=tabparser(new String(repl));
    System.out.println("List of topics available:");
    for(j=0;j<Topics.length;j++) {
    System.out.println(Topics[j]);
    if(Topics[j].endsWith(".doc") || Topics[j].endsWith(".DOC"))
    doc=Topics[j];
    }
    //disconnect from MsWord
    cli.disconnect();
    if(doc==null) {
    System.out.println("Document is not available...");
    System.exit(0);
    }
    //connect to the document
    cli=new com.neva.DdeClient();
    cli.connect("WINWORD",doc);
    //retrieve the contents of the entire document
    repl=cli.request("\\Doc",format,timeout);
    String text=new String(repl);
    System.out.println(text);
    //Disconnect from the document
    cli.disconnect();
    } catch(Exception e) {
    e.printStackTrace();
    System.exit(0);
    }
    }
    static String [] tabparser(String in) {
    //parses the tab-delimited list of information
    int pos=0;
    int cnt=1;
    while(true) {
    pos=in.indexOf('\t',pos+1);
    if(pos==-1)
    break;
    cnt++;
    }
    String [] out=new String[cnt];
    cnt=0;
    pos=0;
    while(true) {
    int pos2=in.indexOf('\t',pos);
    if(pos2==-1) {
    out[cnt++]=in.substring(pos);
    break;
    } else
    out[cnt++]=in.substring(pos,pos2);
    pos=pos2+1;
    }
    return out;
    }
    }

  16. #16
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Si tu est prête à payer pour je suppose, sinon au revoir la solution....
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  17. #17
    Nouveau membre du Club
    Inscrit en
    Juin 2006
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 38
    Points : 28
    Points
    28
    Par défaut
    comment ça????

  18. #18
    Nouveau membre du Club
    Inscrit en
    Juin 2006
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 38
    Points : 28
    Points
    28
    Par défaut
    est-ce que quelqu'un pourrait me dire comment récupérer le texte d'un document word??????????? ce serait vraiment gentil!!!!!!!!

  19. #19
    Membre éclairé Avatar de g_rare
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 608
    Points : 683
    Points
    683
    Par défaut
    Le mieux c'est de <<convertir ton fichier .doc en .txt>> : ou de connaître avec précision la strcuture (si toujours la même) de ton fichier Word, pour pouvoir parcourir le tout en zappant les "balises" de forme pour se concentrer sur le fond...
    " Jag blev dömd för fildelning och allt jag fick var en sketen t-shirt. " (tankafritt.nu)
    PAS DE REPONSE PAR MESSAGE PRIVE ! Penser au bouton Résolu en bas de la discussion...

Discussions similaires

  1. Envoyer formulaire à une adresse mail dans l'anonymat
    Par face_connector dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 12/08/2012, 00h55
  2. Pointer vers une adresse mail dans une preview d'image
    Par ourson78 dans le forum jQuery
    Réponses: 3
    Dernier message: 10/03/2011, 15h55
  3. Réponses: 2
    Dernier message: 05/11/2010, 21h30
  4. Récupérer une adresse mail dans un corps de message
    Par wannie7777 dans le forum VBA Outlook
    Réponses: 11
    Dernier message: 25/09/2008, 12h36
  5. vérification d'une adresse mail dans un formulaire via une regexp
    Par mattstriker dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 11/04/2008, 19h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo