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

Java Discussion :

Traiter tous les fichiers html l'un après l'autre


Sujet :

Java

  1. #1
    Membre du Club
    Homme Profil pro
    Webmarketer
    Inscrit en
    Octobre 2008
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmarketer

    Informations forums :
    Inscription : Octobre 2008
    Messages : 191
    Points : 52
    Points
    52
    Par défaut Traiter tous les fichiers html l'un après l'autre
    Bonjour,

    J'ai créé un programme qui me sort dans un fichier html les informations d'un serveur. Chaque serveur m'envoie ces information dans un meme dossier de mon pc administrateur sous cette page html dont le nom est l'adresse ip du serveur. exemple : C:/192.165.10.54.html
    Je dois traiter tous les fichiers avec java pour en extraire les informations vers une autre page html qui les résume. seulement, comment je peut faire pour que dans une boucle le programme me traite tous les fichiers les un après les autres sachant que je ne connais pas tous les ip (il y en a quelques centaines!) ? J'ai pensé a une boucle qui s'éxécute tant que tous les fichiers du dossier n'ont pas tous été ouverts cependant il faut penser qu'il y a dans le dossier les .css ect (donc peut etre tant que tous les html n'ont pas été ouverts).

    merci beaucoup!!

  2. #2
    Membre éprouvé
    Inscrit en
    Mars 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2006
    Messages : 848
    Points : 1 078
    Points
    1 078
    Par défaut
    Bonjour,

    Si tous tes fichiers sont dans un même répertoire et que seuls ceux que tu dois traiter sont des fichiers .html, tu peux appeler la méthode File.listFiles(FilenameFilter) sur ton dossier et avec un filtre qui ne retient que les fichiers dont le nom finit par ".html".

  3. #3
    Membre du Club
    Homme Profil pro
    Webmarketer
    Inscrit en
    Octobre 2008
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmarketer

    Informations forums :
    Inscription : Octobre 2008
    Messages : 191
    Points : 52
    Points
    52
    Par défaut
    bonjour,

    et comment tu met en place un filtre?

  4. #4
    Membre éprouvé
    Inscrit en
    Mars 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2006
    Messages : 848
    Points : 1 078
    Points
    1 078
    Par défaut
    Tu dois créer une classe implémentant FilenameFilter (ou FileFilter).

    Un Filtre sur l'extension pourrait être quelque chose du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public class ExtensionFilenameFilter implements FilenameFilter
    {
        private final String extension;
     
        public ExtensionFilenameFilter(String extension) {
            super();
            this.extension = extension;
        }
     
        public boolean accept(File dir, String name)
        {
            return name != null && name.endsWith(extension);
        }
    }
    Et il ne reste plus qu'à l'initialiser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new ExtensionFilenameFilter(".html")

  5. #5
    Membre du Club
    Homme Profil pro
    Webmarketer
    Inscrit en
    Octobre 2008
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmarketer

    Informations forums :
    Inscription : Octobre 2008
    Messages : 191
    Points : 52
    Points
    52
    Par défaut
    ok merci beaucoup jvais essayer de l'inclure et j'te tiens au courant

  6. #6
    Membre du Club
    Homme Profil pro
    Webmarketer
    Inscrit en
    Octobre 2008
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmarketer

    Informations forums :
    Inscription : Octobre 2008
    Messages : 191
    Points : 52
    Points
    52
    Par défaut
    c'est impossible d'utiliser cette methode car j'utilise un nom de fichier de type string avec FileReader et c'est impossible de le changer...

    public class Analyse {



    public static final String analyse() throws IOException

    {
    String ligne;String nomfich="C:/analyseserveur/pagegenere/192.168.10.191.html";
    String lignes="<html><head><body bgcolor=\"#444444\"></head><link href=\"global.css\" rel=\"stylesheet\" type=\"text/css\"><script src=\"dsa_sort.js\"></script><div class=\"pageheader\">Alertes Statuts Raid</div><table class=\"coltable\" width=\"60%\" id=\"table_0\" border=\"0\" cellspacing=\"1\" cellpadding=\"1\">";

    BufferedReader entree = new BufferedReader (new FileReader(nomfich));


    do{ligne=entree.readLine();
    //if1: supprime la ligne après ma condition de if3, if2 insert une ligne meme si elle est nulle



    if(ligne!=null )
    {
    if(ligne.contains("Online")){lignes=lignes+"<tr class=\"bg0\">"+"<th class=\"tableheader\" width=\"30%\">"+"<a href="+nomfich+"> "+nomfich+" </a>"+"</th>"+"<td width=\"70%\">"+"Hors ligne"+"</td>"+"</tr>"+"\r\n";}
    else{ligne="";}
    System.out.println(ligne);
    }




    }
    while(ligne != null );nomfich=new ExtensionFilenameFilter(".html");

    entree.close();

    return lignes;


    }

    }

  7. #7
    Membre éprouvé
    Inscrit en
    Mars 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2006
    Messages : 848
    Points : 1 078
    Points
    1 078
    Par défaut
    Merci d'éditer ton message pour mettre le code dans les balises code, ça sera plus lisible

    Voici la structure que devrait avoir ton algo:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public void analyseDir(File directory) { // Ton dossier contenant les .html
        FilenameFilter monFiltre = new ExtensionFilenameFilter(".html");
     
        // Ouverture des Stream,Buffer ou Builder où écrire le résultat
        for (File monFichierHtml : directory.listFiles(monFiltre)) {
            // Analyse du fichier 'monFichierHtml'
        }
        // Fermeture des Stream/Buffer/Builder
    }

  8. #8
    Membre du Club
    Homme Profil pro
    Webmarketer
    Inscrit en
    Octobre 2008
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmarketer

    Informations forums :
    Inscription : Octobre 2008
    Messages : 191
    Points : 52
    Points
    52
    Par défaut
    En fait un collegue du bureau m'a aidé et jai utilisé un tableau de File...
    Voici le code pour ceux que ça intéresse

    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
     
     
    public static final  String analyse() throws IOException
     
    	{	File f1 = new File ( "C:/pagesgenere/" ) ;File[] strFilesDirs = f1.listFiles ( );
     
     
    	String ligne;
     
    	for ( int i = 0 ; i < strFilesDirs.length ; i ++ ) {
    		File nomfich=strFilesDirs[i];
     
     
    BufferedReader entree = new BufferedReader (new FileReader(nomfich));
     
    int j=1;
    	do{ligne=entree.readLine();
     
     
    ...


    Merci pour ton aide ça m'a mis sur la voie!
    a++

Discussions similaires

  1. Réponses: 4
    Dernier message: 12/06/2009, 15h11
  2. Réponses: 3
    Dernier message: 04/05/2009, 08h28
  3. Réponses: 3
    Dernier message: 11/04/2007, 12h32
  4. Copier tous les fichiers d'un répertoire vers un autre
    Par papilou86 dans le forum Langage
    Réponses: 1
    Dernier message: 09/09/2006, 01h02
  5. Traiter tous les fichiers d'un répertoir sans les MFC.
    Par radicalrider dans le forum MFC
    Réponses: 12
    Dernier message: 21/06/2006, 17h18

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