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

Logging Java Discussion :

Interpréter un fichier log en Java


Sujet :

Logging Java

  1. #21
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Août 2012
    Messages : 26
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    Non, je t'ai déjà donné un code qui fait le split en une seule ligne. Pourquoi refaire un travail que java c'est déjà faire (splitter sur base d'une expression régulière) ?
    D'accord, du coup j'utilise mon ReadBuffer pour remplir une string que je split derrière genre ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    String f = "exim_mainlog";
    			String champ = "";
    			long taille = new File(f).length();
    			FileInputStream fis = new FileInputStream(f);
    			BufferedInputStream bis = new BufferedInputStream(fis);
    			for (long cpt = 0; cpt < taille; cpt++)
    			{
    				champ = champ+bis.read();
                                    String[] premierElements = champ.split(" (?!<)");

  2. #22
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Non, tu utilise un BufferedReader et tu lis ligne par ligne! Là t'es occupé de lire octet par octet et essayer de splitter après chaque octet

  3. #23
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Août 2012
    Messages : 26
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    Non, tu utilise un BufferedReader et tu lis ligne par ligne! Là t'es occupé de lire octet par octet et essayer de splitter après chaque octet
    Ah oui... en effet ça marche mieux comme ça! (je vous l'ai dit je suis débutant)

    Bon maintenant je pense qu'il va falloir que je revois mon split car il fait des trucs bizarre :p.

    Mais déjà un grand merci à toi tchize_.

    EDIT: Je voulais traiter mes champs en fonction de ce qu'il y a dedans, je ne sais pas comment faire pour lui dire quand il y a ça ou il n'y a pas ça tu passe à la ligne suivante (en gros ne pas tenir compte des lignes inutiles).

    Voila ce que j'ai pour le moment:
    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
    try{
    			String f = "exim_mainlog";
    			String chaine = "";
     
    			InputStream ips=new FileInputStream(f); 
    			InputStreamReader ipsr=new InputStreamReader(ips);
    			BufferedReader br=new BufferedReader(ipsr);
     
    			String ligne;
    			while ((ligne=br.readLine())!=null){
    				chaine+=ligne+"\n";
    				String[] premierElements = chaine.split(" ");
    				if (! premierElements[3].contains("1S")){ //du fait que chaque n° de session commence par "1S........"
    				}
    			}

  4. #24
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    pour passer à l'étape suivante d'une boucle, l'instruction est "continue":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    			while ((ligne=br.readLine())!=null){
    				chaine+=ligne+"\n";
    				String[] premierElements = chaine.split(" ");
    				if (! premierElements[3].contains("1S")) //du fait que chaque n° de session commence par "1S........"
    				  continue;
    				}
    Maitenant il est préférable d'inverser ta logique. A la place de 'si c'est pas un bon élément on ne fait rien', écrire 'si c'est le bon élément, on fait quelque chose'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    			while ((ligne=br.readLine())!=null){
    				chaine+=ligne+"\n";
    				String[] premierElements = chaine.split(" ");
    				if ((premierElements!=null) && (premierElements.length > 6) && premierElements[3].contains("1S")) 
    				  //on traite la ligne
    				}
    			}

  5. #25
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    je rajoute que tu es censé traiter chaque ligne individuellement, il n'y a pas de raison donc de concaténer chaque ligne avec \n et chaine

  6. #26
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Août 2012
    Messages : 26
    Points : 10
    Points
    10
    Par défaut
    Je voulais savoir comment dois-je faire pour stocker les infos utiles dans mon objet ? concaténation ? ou alors je sépare à la main en faisant de la concaténation avec ";" ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    while ((ligne=br.readLine())!=null){
    			     		chaine = ligne;
    			     		String[] premierElements = chaine.split(" ");
    			     			if ((premierElements!=null) && premierElements[2].contains("1S") && (premierElements[3] != "Completed")) {
    			     				String LigneLog = new String(premierElements[0]+premierElements[2]); // 
    			     				ArrayList al = new ArrayList();
    			     				al.add(LigneLog);

  7. #27
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Heu c'est un peu idiot d'aller tout séparer pour tout concaténer non? Tu te crée un classe qui représente tes données, avec différents champs que tu initialise aux valeurs que tu as récupérée. Donc tu te fait une List<TraceEmail> avec un truc genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public class TraceEmail {
       public static enum Direction {ENVOI,RECEPTION}
       private String email;
       private String subject;
       pricate Direction direction;
       // +getters et setters
    }

  8. #28
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Août 2012
    Messages : 26
    Points : 10
    Points
    10
    Par défaut
    Okkkkkk!! donc après ça me fait un truc du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if ((premierElements!=null) && premierElements[2].contains("1S")) {
    			     				List<TraceEmail> list = new ArrayList<TraceEmail>(); 
    			     				email = premierElements[2];
                                                            direction = premierElements[4]; // etc avec mes autres elements
    Par contre j'ai une erreur à ce niveau la :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public class TraceEmail { //The public type TraceEmail must be defined in its own file
    	   public static enum Direction {ENVOI,RECEPTION}
    	   private String email;
    	   private String Amail;
    	   private Direction direction;
    	   // +getters et setters
    }
    EDIT: Je bloque également sur l'utilisation de mes objet pour les remplir avec les cases de mon tableau

  9. #29
    Membre régulier
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2010
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 125
    Points : 98
    Points
    98
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    List<TraceEmail> list = new ArrayList<TraceEmail>();
    ok, mais à l'exterieur de ta boucle.


    A chaque nouvelle ligne ( readLine() ):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    TraceEmail trace = new TraceEmail(); // ou éventuel autre constructeur
    trace.setEmail("email récupéré");
    trace.setSubject(...);
    ...
    list.add(trace);
    Donc n'oublie pas les setters/getters, sinon tu les mets en protected.

    Edit:
    Tu peux même carement faire en une ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    list.add(new TraceEmail(tab[0],tab[1]...);
    Constructeur à créer donc.
    Et vérifier aussi si tu peux remplir tous les champs à chaque fois, c'est peut être mieux la 1ere solution en testant la présence des éléments avant de les ajouter

    The public type TraceEmail must be defined in its own file
    Ah les copié/collé :p
    Nom du fichier = nom de la classe publique
    Si vraiment tu veux mettre ta classe dans le même fichier, il ne faut pas la déclarer publique (mais c'est pas cool).


    Laborieux
    Tu fais ça dans quel cadre si c'est pas trop indiscret?

  10. #30
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Août 2012
    Messages : 26
    Points : 10
    Points
    10
    Par défaut
    Ah oui en effet c'est bien mieux! merci beaucoup!

    Oui très laborieux tout comme mes connaissances en java..

    Et bien pour tout te dire, je travail dans une ONG qui souhaite connaitre les flux de mails sur différentes missions via un fichier log de notre hébergeur. Je me suis proposé de faire ça en Java pour approfondir mes connaissances. Mais depuis 2jours je me rends compte dans quoi je me suis embarqué

    Bon maintenant passons au tri je n'arrive pas à trier en fonction du champ Idmail. La syntaxe c'est bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Collections.sort(TraceEmail.idmail); // j'ai également testé avec .sort(list) qui correspond à ma liste.
    (Je veux trier dans un premier temps mes données en fonction de idmail

  11. #31
    Membre régulier
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2010
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 125
    Points : 98
    Points
    98
    Par défaut
    Tu veux trier par ordre croissant par rapport au champ ID?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public class TraceEmail implements Comparable<TraceEmail>{
     
    (...)
     
    @Override
    public int compareTo(TraceEmail email) {
    	return ID.compareTo(email.getID());
    }
    Sinon comment il sait qu'il doit trier par ID? (je connais pas sort(Class.champ), en plus tu tri quelle liste là? xD )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Collections.sort(list);

    Essai comme ça, je sais plus si ça peut suffire...
    Sinon petite recherche ^^

  12. #32
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Août 2012
    Messages : 26
    Points : 10
    Points
    10
    Par défaut
    Ok donc je crée une nouvelle classe ?

  13. #33
    Membre régulier
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2010
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 125
    Points : 98
    Points
    98
    Par défaut
    non tu ajoutes juste ça dans ta classe.

    En fait on peut trier des objets qui sont comparables (de base int, String...)
    TraceEmail il connait pas monsieur Java.

    du coup tu luis dis qu'elle est comparable ( implements Comparable<TraceEmail> )
    et tu lui dit comment:
    methode compareTo

  14. #34
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Août 2012
    Messages : 26
    Points : 10
    Points
    10
    Par défaut
    je n'arrive pas à m'en servir j'ai chercher sur gogole mais en vain.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public class TraceEmail implements Comparable<TraceEmail>{
     
     
    		@Override
    		public int compareTo(TraceEmail idmail) {
    			return TraceEmail.compareTo(TraceEmail.getIdmail());
    		}
    		}
    voici ma classe TraceEmail:
    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
    public class TraceEmail {
    	   public static enum Direction {ENVOI,RECEPTION}
    	   private String dmail;
    	   private String hmail;
    	   private String idmail;
    	   private String amail;
    	   private Direction direction;
     
    	public String getIdmail() {
    		return idmail;
    	}
    	public void setIdmail(String idmail) {
    		this.idmail = idmail;
    	}
     // + les autres getters et setters

  15. #35
    Membre régulier
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2010
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 125
    Points : 98
    Points
    98
    Par défaut
    Tu as fais 2 classes différentes?

    Prends ta classe de base, avec tous les champs, méthodes etc...
    Ajoutes-y l'implémentation de l'interface comparable
    Ajoutes-y tous les getter( au moins celui de l'ID)
    Ajoutes-y la méthode compareTo

    Mélange le tout... et ton TraceEmail est maintenant prêt à être trié grâce à Collections.sort(taListe) !


    Si un exemple peut t'aider:
    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
    public class TraceEmail implements Comparable<TraceEmail> {
     
    	private String ID;
    	private int numero; // inutile ici mais bon
     
    	public TraceEmail(String s, int i){
    		ID=s;
    		numero=i;
    	}
     
    	@Override
    	public int compareTo(TraceEmail o) {
    		return ID.compareTo(o.getID());
    	}
     
    	public String getID() {
    		return ID;
    	}
     
    	public static void main(String[] args) {
     
    		List<TraceEmail> list = new ArrayList<TraceEmail>();
    		list.add(new TraceEmail("salut", 12));
    		list.add(new TraceEmail("atchoum", 42));
    		list.add(new TraceEmail("igor", 1));
    		list.add(new TraceEmail("coucou", 26));
     
    		for(TraceEmail mail : list)
    			System.out.println(mail.getID());
     
    		System.out.println();
     
    		Collections.sort(list);
     
    		for(TraceEmail mail : list)
    			System.out.println(mail.getID());
        }
    }
    Avant tri:
    salut
    atchoum
    igor
    coucou

    Après tri:
    atchoum
    coucou
    igor
    salut

  16. #36
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Août 2012
    Messages : 26
    Points : 10
    Points
    10
    Par défaut
    Bon et bien ça avance ça avance
    Dès que j'aurais terminé je ne manquerais pas de poster mon code pour ceux que ça intéresserait.
    je souhaiterais maintenant écrire tout cela dans un CSV afin de pouvoir utiliser excel et faire des tri. Pour le moment mon CSV ce crée mais sans le séparateur ";" du coup j'ai pour chaque ligne de mon fichier toute la ligne.

    Voici mon code: (je sais c'est un peu le ''WILD'' mais bon je réorganiserais plus tard
    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
    public static void main (String args[]) {
     
    		try{
    			String f = "exim_mainlog"; // mon fichier
    			 String chaine = "";  //initialisation des variables
    			  String ligne;
    			   InputStream ips=new FileInputStream(f); //déclarations des objets de lecture
    			    InputStreamReader ipsr=new InputStreamReader(ips);
    			     BufferedReader br=new BufferedReader(ipsr);
    			      //DataOutputStream dos = new DataOutputStream (new FileOutputStream ("test.csv"));
    			     CSVWriter writer = new CSVWriter(new FileWriter("TEST2.csv"));
     
    			     List<TraceEmail> list = new ArrayList<TraceEmail>(); //déclaration de notre ArrayList
     
     
    			     	while ((ligne=br.readLine())!=null){  //tant qu'il y a des lignes
    			     		chaine = ligne;
    			     		 String[] champ = chaine.split(" "); //on stocke chaque bloc séparé par le caractère espace
    			     		  TraceEmail trace = new TraceEmail(); // le constructeur
     
    			     		 if (champ[2].contains("1S") && champ[3].contains("<=") || champ[3].contains("->") || champ[3].contains("=>") /*&& Pattern.compile(champ[4]).matcher("^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[a-z0-9-]+(\\.[a-z0-9-]+)+$").matches() && Pattern.compile(champ[5]).matcher("^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[a-z0-9-]+(\\.[a-z0-9-]+)+$").matches()*/ ) {
     
    			     				trace.setDmail(champ[0]);
    			     				trace.setHmail(champ[1]);
    			     				trace.setIdmail(champ[2]);
    			     				trace.setDirection(champ[3]);
    			     				if (! champ[4].contains("@")) //ne rien faire et traiter tab[6]
    			     				{
    			     				 trace.setAmail(champ[5]); 
    			     				}
    			     				else trace.setAmail(champ[4]);
     
    			     				list.add(trace);
     
    			     				//Pattern.compile(champ[4]).matcher("^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[a-z0-9-]+(\\.[a-z0-9-]+)+$").matches()
    			     				writer.writeNext(champ);	     				//dos.writeBytes(mail.getDmail());	
     
    			     				//ArrayList<String> arrList = new ArrayList<String>();
    				} else { continue; }
     
    			     	}
     
    			     	Collections.sort(list);
    			     	for(TraceEmail mail : list) {
    	     				//dos.writeBytes(mail.getDmail());	
    			     		//System.out.printf("Date: " + mail.getDmail() + "Heure: " + mail.getHmail() + " : " + mail.getIdmail() + mail.getDirection() + mail.getAmail() + "\n");	
    					}	
    			br.close();
    			writer.close();
     
    		}

  17. #37
    Membre régulier
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2010
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 125
    Points : 98
    Points
    98
    Par défaut
    Ben là tu as réussi à lire tout ton fichier, stocker son contenu, et trier par identifiant c'est bon?

    Maintenant tu veux écrire le fichier trié avec des ";' à la place des " " à la base?

    Il te reste à parcourir toute ta liste, et écrire tous les champs dans le fichier en ajoutant ";" entre chaque champ... non?

  18. #38
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Août 2012
    Messages : 26
    Points : 10
    Points
    10
    Par défaut
    Salut,

    C'est exact, mais comme ils sont tous dans des case d'un tableau je ne vois pas comment utiliser la fonction qui permet d'écrire. J'ai essayé de créer une String et container avec un ";" mais en vain. Quel est la solution la plus adapté ?

  19. #39
    Membre régulier
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2010
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 125
    Points : 98
    Points
    98
    Par défaut
    Je ne connais pas ce CSVWriter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    writer.writeNext(champ);
    Apparemment tu peux écrire directement un tableau de String. Si t'es sûr que c'est comme ça qu'il faut faire ben il ne te reste qu'à:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    champ[0]+=";";
    champ[1]+=";";
    ...
    Sous forme de boucle qui parcours tous les champ[i] quoi (sauf le dernier je présume, je m'y connais pas non plus en CSV)

  20. #40
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Août 2012
    Messages : 26
    Points : 10
    Points
    10
    Par défaut
    C'est bon!! ça fonctionne!!!

    Il ne me reste plus qu'à compiler et c'est good.

    Je reviens poster le code source dès que j'aurai réorganiser tout ça puis mettre en résolu bien entendu.

    Petite question comment je peux vérifier si ma chaine contient une majuscule ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (Pattern.compile(champ[4]).matcher("[A-Z]")) { //actions
    }
    Est-ce que c'est censé marché ça ?

Discussions similaires

  1. interprétations de donnée de fichier log
    Par devalender dans le forum Sécurité
    Réponses: 1
    Dernier message: 15/04/2013, 17h52
  2. Parser un flux XML (type fichier de log) en java
    Par zorglubpok dans le forum Format d'échange (XML, JSON...)
    Réponses: 5
    Dernier message: 28/09/2009, 18h24
  3. fichier log java
    Par salim81 dans le forum Logging
    Réponses: 3
    Dernier message: 10/07/2007, 10h48

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