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 :

Analyse document et bornes


Sujet :

Java

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

    Informations professionnelles :
    Activité : Webmarketer

    Informations forums :
    Inscription : Octobre 2008
    Messages : 191
    Par défaut Analyse document et bornes
    Bonjour a tous,
    J'ai réalisé un code qui permet de retrouver dans un fichier texte si il y a des string error ou warning et de les afficher vers une autre page. Le problème c'est qu'on m'a ajouté une contrainte : Je ne dois afficher l'information que si la date de celle-ci est supérieure a celle ecrite dans mon fichier texte. voici les informations dont vous aurez besoin :
    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
    public class Analyse2 {
     
     
     
    	public static final  String analyse2() throws IOException
     
    	{	File f1 = new File ( "C:/SpiralAF_Client/as/" ) ;
     
    	File[] strFilesDirs = f1.listFiles ( );
     
     
    	String ligne="";int e=0;int w=0;
    String lignes="";String lignes1;
    	for ( int i = 0 ; i < strFilesDirs.length ; i ++ ) {
    		File nomfich=strFilesDirs[i];
     
    BufferedReader entree = new BufferedReader (new FileReader(nomfich));
     
    int j=0;int k=0;
    	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(k==0){if(ligne.contains("Error</a></td><td>")){e=0;}
     
    		if(e==0 && ligne.contentEquals("02/09/2010"))	{lignes=lignes+"<tr class=\"bg0\">"+"<th class=\"tableheader\" width=\"30%\">"+"<a href="+nomfich+"> "+strFilesDirs[i]+" </a>"+"</th>"+"<td width=\"70%\">"+"   "+"ERREUR system/securite/appl sur le serveur"+"</td>"+"</tr>"+"\r\n";k=1;e=1;}}
     
     
    		if(j==0){	if(ligne.contains("Warn")){w=0;}
     
     
    		if(w==0 && ligne.contentEquals("02/09/2010"))	{lignes=lignes+"<tr class=\"bg0\">"+"<th class=\"tableheader\" width=\"30%\">"+"<a href="+nomfich+"> "+nomfich+" </a>"+"</th>"+"<td width=\"70%\">"+"   "+" Warning au serveur :"+nomfich+"</td>"+"</tr>"+"\r\n"; j=1;w=1;}}}
     
     
     
     
     
     
     
     
     
    	}
    	while(ligne != null  );
     
    	entree.close();}
     
    	return lignes;	
     
     
    }
     
    	}
    mon fichier texte a analyser :
    <TR id="row6" bgcolor="#CCCCCC">
    <td><a href="JavaScript:SelectRow( 6)"><img border="0" src="e.gif"></a></td>
    <td><a href="JavaScript:SelectRow( 6)">Error</a></td>
    <td><a href="JavaScript:SelectRow( 6)">02/10/2010 10:15:25</a></td><td><a
    href="JavaScript:SelectRow( 6)">TermServDevices</a></td><td><a href="JavaScript:SelectRow( 6)">none</a></td><td><a href="JavaScript:SelectRow( 6)">Le pilote hp LaserJet 1012 requis pour l'imprimante !!...</a></td><td><a href="JavaScript:SelectRow( 6)">1111</a></td><td><a href="JavaScript:SelectRow( 6)">N/A</a></td><td><a href="JavaScript:SelectRow( 6)">NT-SPIRAL</a></td></TR>

    biensur ce bout de texte n'est qu'un petit extrait mais la forme reste la même.
    J'ai entendu parlé d'une methode qui analyserait par exemple un type string entre des bornes a définir...le problème c'est que la les bornes...je sais pas lesquels prendre étant donné que le date a comparer en rouge ne contient que la date et non l'heure dans mon fichier de derniere activation.
    J'espère que j'ai été comprehensible.
    Merci beaucoup

  2. #2
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    Citation Envoyé par kavdo34 Voir le message
    J'espère que j'ai été comprehensible.
    Sur la fin, j'avoue que ça manque de clarté...

    Le plus simple, pour borner tes dates, c'est de convertir les chaînes de caractères en "véritables" dates, grâce notamment à la classe "SimpleDateFormat" et à sa méthode "parse".

    Les dates ainsi obtenues sont très facilement comparables avec les méthodes "after" et "before".

    Note : les dates ne se comparent facilement sous forme texte que lorsqu'elles sont écrites dans le format anglosaxon "AAAAMMDD" qui a le bon goût d'avoir "ordre lexicographique = ordre chronologique".
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

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

    Informations professionnelles :
    Activité : Webmarketer

    Informations forums :
    Inscription : Octobre 2008
    Messages : 191
    Par défaut
    non en fait je n'est pas du etre très compréhensible...

    le fichier texte que j'ai posté est un document a utiliser, je ne peux en rien la modifier... j'ai crée grace a la methode simpledateformat() un autre fichier texte dans lequel il y a la date de la derniere exécution du programme. En fait je veux selectionner les erreurs de la page de base que je vous ai ecrit plus haut dont la date (qui se situe a la ligne du dessous) est supérieure a ma date de mon fichier nouveau texte pour les mettre dans un autre fichier qui résume les dernieres erreurs. Cette méthode me permet de mettre a jour les informations a traiter tout en gardant un historique des erreurs dans le fichier texte de base.
    PS : j'appel fichier texte mais en fait ce sont des pages html, mais ça ne change rien.

    La methode Parse je ne sait pas l'utiliser, je vais chercher sur le net si ça peut gérer mon probleme. En tout cas si je ne suis toujours pas comprehensible dis le moi je réexpliquerais
    merci

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

    Informations professionnelles :
    Activité : Webmarketer

    Informations forums :
    Inscription : Octobre 2008
    Messages : 191
    Par défaut
    J'ai trouvé une methode qui m'aiderais a extraire ma date en type String, voici le code mais il ne marche pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    		if(ligne!= null) 
     
    			{
     
    			int debut=ligne.indexOf(">");
    			int fin=ligne.indexOf("/");
    		String sub=ligne.substring(debut, fin);
     
    		System.out.println(debut);
    		System.out.println(fin);
    		System.out.println(sub);	
     
    			}

    je vous remet la ligne d'ou je veux extraire la date :

    href="JavaScript:SelectRow( 6)">02/10/2010 10:15:25</a></td><td><a

  5. #5
    Membre chevronné
    Inscrit en
    Juillet 2006
    Messages
    534
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 534
    Par défaut
    Essais ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    int fin=ligne.indexOf("</");
    et la fonction substring comme ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    substring(debut + 1, fin);

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

    Informations professionnelles :
    Activité : Webmarketer

    Informations forums :
    Inscription : Octobre 2008
    Messages : 191
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    int debut=ligne.indexOf(">");
    			int fin=ligne.indexOf("</");
    		System.out.println(ligne.substring(debut + 1, fin));
    j'ai fais comme tu m'a dis mais ça ne marche toujours pas :/

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

    Informations professionnelles :
    Activité : Webmarketer

    Informations forums :
    Inscription : Octobre 2008
    Messages : 191
    Par défaut
    je suis enfin arrivé a faire marcher mon code, je pense que c'était un probleme dans le texte de mes fichiers a analyser qui me fesait ce beug...
    Donc j'ai bien remis ce bout de code dans ma methode et j'obtient :

    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
     
    public class Analyse2 {
     
     
     
    	public static final  String analyse2() throws IOException
     
    	{	File f1 = new File ( "C:/SpiralAF_Client/as/" ) ;
     
    	File[] strFilesDirs = f1.listFiles ( );
     
     
    	String ligne="";int e=1;int w=0;
    String lignes="";String lignes1;
    	for ( int i = 0 ; i < strFilesDirs.length ; i ++ ) {
    		File nomfich=strFilesDirs[i];
     
    BufferedReader entree = new BufferedReader (new FileReader(nomfich));
     
    int j=0;int k=0;
    	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("Error</a></td><td>")){lignes=lignes+"<tr class=\"bg0\">"+"<th class=\"tableheader\" width=\"30%\">"+"<a href="+nomfich+"> "+strFilesDirs[i]+" </a>"+"</th>"+"<td width=\"70%\">"+"   "+"ERREUR system/securite/appl sur le serveur"+"</td>"+"</tr>"+"\r\n";e=1;}
     
    		if(j==1 && ligne.contains("src")==false && ligne.contains("href=\"JavaScript:SelectRow") && ligne.contains("</a></td>"))	
     
    		{int debut=ligne.indexOf(")\">");int fin=debut+11;System.out.println(ligne.substring(debut + 11, fin));j=0;}
     
     
     
     
    		if(ligne.contains("Warn")){lignes=lignes+"<tr class=\"bg0\">"+"<th class=\"tableheader\" width=\"30%\">"+"<a href="+nomfich+"> "+nomfich+" </a>"+"</th>"+"<td width=\"70%\">"+"   "+" Warning au serveur :"+nomfich+"</td>"+"</tr>"+"\r\n"; j=1;}
     
    	if(j==1 && ligne.contains("src")==false && ligne.contains("href=\"JavaScript:SelectRow")&& ligne.contains("</a></td>"))	
     
    	{int debut=ligne.indexOf(">");int fin=debut+11;System.out.println(ligne.substring(debut + 11, fin));j=0;}
     
     
     
     
     
     
     
    		}
     
    	}
    	while(ligne != null  );
     
    	entree.close();}
     
    	return lignes;	
     
     
    }
     
    	}

    mais probleme...il me trouve bien mes "Error" mais il ne va pas analyser la ligne qui suit l'error ou le warn pour en extraire l'heure...!
    Je ne comprend pas trop, ça fait 2h que j'y suis je commence a saturer un petit peu
    Soyez certain que si vous me trouvez ce qui ne va pas, je vous en serais extremement reconnaissant! merci

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

    Informations professionnelles :
    Activité : Webmarketer

    Informations forums :
    Inscription : Octobre 2008
    Messages : 191
    Par défaut
    j'avais oublié le texte correspondant a analyser...je vous en met un petit bout


    <td><a href="JavaScript:SelectRow( 5)"><img border="0"src="i.gif"></a></td><td><a href="JavaScript:SelectRow( 5)">Info</a></td><td><a href="JavaScript:SelectRow( 5)">02/10/2010 10:21:30</a></td><td><a href="JavaScript:SelectRow( 5)">Service Control Manager</a></td><td><a href="JavaScript:SelectRow( 5)">none</a></td><td><a href="JavaScript:SelectRow( 5)">Un contrôle de démarrage a correctement été envoyé au ...</a></td><td><a href="JavaScript:SelectRow( 5)">7035</a></td><td><a href="JavaScript:SelectRow( 5)">SYSTEM</a></td><td><a href="JavaScript:SelectRow( 5)">NT-SPIRAL</a></td></TR>
    <TR id="row6" bgcolor="#CCCCCC">
    <td><a href="JavaScript:SelectRow( 6)"><img border="0" src="e.gif"></a></td><td><a href="JavaScript:SelectRow( 6)">Error</a></td><td><a href="JavaScript:SelectRow( 6)">02/10/2010 10:15:25</a></td><td><a href="JavaScript:SelectRow( 6)">TermServDevices</a></td><td><a href="JavaScript:SelectRow( 6)">none</a></td><td><a href="JavaScript:SelectRow( 6)">Le pilote hp LaserJet 1012 requis pour l'imprimante !!...</a></td><td><a href="JavaScript:SelectRow( 6)">1111</a></td><td><a href="JavaScript:SelectRow( 6)">N/A</a></td><td><a href="JavaScript:SelectRow( 6)">NT-SPIRAL</a></td></TR>
    <TR id="row7" bgcolor="#CCCCCC">
    <td><a href="JavaScript:SelectRow( 7)"><img border="0" src="e.gif"></a></td><td><a href="JavaScript:SelectRow( 7)">Error</a></td><td><a href="JavaScript:SelectRow( 7)">02/10/2010 10:15:25</a></td><td><a href="JavaScript:SelectRow( 7)">TermServDevices</a></td><td><a href="JavaScript:SelectRow( 7)">none</a></td><td><a href="JavaScript:SelectRow( 7)">Le pilote Microsoft XPS Document Writer requis pour l'...</a></td><td><a href="JavaScript:SelectRow( 7)">1111</a></td><td><a href="JavaScript:SelectRow( 7)">N/A</a></td><td><a href="JavaScript:SelectRow( 7)">NT-SPIRAL</a></td></TR>
    <TR id="row8" bgcolor="#CCCCCC">
    voila!

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

    Informations professionnelles :
    Activité : Webmarketer

    Informations forums :
    Inscription : Octobre 2008
    Messages : 191
    Par défaut
    Personne ?

Discussions similaires

  1. Récupération et analyse d'un document en xml dans une application j2ee
    Par tabony dans le forum Développement Web en Java
    Réponses: 0
    Dernier message: 24/03/2014, 14h31
  2. Analyser et documenter une requête
    Par brunoSCP dans le forum Développement
    Réponses: 1
    Dernier message: 29/01/2012, 01h39
  3. Réponses: 2
    Dernier message: 21/01/2012, 14h31
  4. Documentation gratuite sur l'API Windows, COM, DCOM, OLE, etc.
    Par Community Management dans le forum Windows
    Réponses: 1
    Dernier message: 16/11/2006, 15h28

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