bonjour,
je viens vers vous car je suis bloqué.
en faite j'ai une fonction qui lis des fichiers .eml
le corps des messages ressemblent à ceci :
premier fichier : fhgzkfjzghiueghdfgzeiutghzepthaezbgpiebhrerrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrtuegf 2e fichier :
Nom : Capture2.PNG
Affichages : 298
Taille : 11,0 KoNom : Capture.PNG
Affichages : 245
Taille : 17,4 Ko

je lis ligne par ligne pour extraire les données de la sections 1 et 3 (à terme je dois mettre ces données dans des propriétés d'objet pour ensuite stocker en base)
en gros chaque ligne des sections 1 et 3 seront des propriétés et la section 2 sera une seule propriété.

pour la section 1 et 3 c'est bon, c'est pour la section 2 que je ne sais pas comment faire

j'ai fais pleins d'essais : par exemple j'ai essayé avec un numéro de ligne et ensuite faire un while pour dire que tant que je suis dans la section 2 j'affiche les données mais ça ne marche pas
le problème c'est que la section 2 varie d'un fichier à l'autre, et dans certains il y a plusieurs fois 3 sections.

j'ai même essayé de faire 2 while séparé : le premier parcours les fichiers et repère les lignes où commencent les sections 2 et 3 et ensuite dans le while que j'utilise je met un while pour dire que tant que la ligne actuelle est entre la section 2 et 3 j'affiche les données mais rien ne marche

j'ai surement mal fais quelque chose mais je n'arrive pas à voir c'est quoi.

Code JAVA : 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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
 
public void lireTout()
    {
        ArrayList<String> allFiles = new ArrayList<String>();
        listeRepertoire(new File("C:\\Users\\moi\\Desktop\\bilans batch satelit 2016\\dossiers extraites"), allFiles);
 
        try
        {
            File f;
 
            Properties props;
            Session mailSession;
            InputStream source;
            MimeMessage message;
            Email email;
 
            for (String file : allFiles)
            {
                f = new File(file);
                System.out.println(f.getAbsolutePath());
 
                // utilisation de l'API MimeMessage pour ouvrir les fichiers .eml
                props = System.getProperties();
                props.put("mail.host", "smtp.dummydomain.com");
                props.put("mail.transport.protocol", "smtp");
                mailSession = Session.getDefaultInstance(props, null);
                source = new FileInputStream(f);
                message = new MimeMessage(mailSession, source);
 
                // utilisation de l'API Email pour la lecture du corps des messgages.
                String body = null;
                if (!f.getName().endsWith(".html"))
                {
                    email = EmailConverter.mimeMessageToEmail(message);
                    // corps du message
                    body = email.getText();
 
                    BufferedReader reader = new BufferedReader(new StringReader(body));
                    String line = reader.readLine();
 
                    String section1 = "============================== SECTION 1 ==============================";
                    String section2 = "============================== SECTION 2 ==============================";
                    String section3 = "============================== SECTION 3 ==============================";
                    String end = "=======================================================================";
 
                    String nomBatch = "Nom du BATCH";
                    String versionBatch = "Version Architecture BATCH";
                    String versionAppli = "Version:";
                    String debut = "Début du Batch";
                    String fin = "Fin du Batch";
                    String duree = "Duree du Batch";
 
                    while (line != null)
                    {
                        /* ============================== SECTION 1 ============================== */
                        if (line.contains(nomBatch))
                        {
                            System.out.println("Batch :" + this.decouper(line, ":"));
                        }
                        if (line.contains(versionBatch))
                        {
                            System.out.println("Version Batch : " + this.decouper(line, ":"));
                        }
                        if (line.contains(versionAppli))
                        {
                            System.out.println("Version Appli : " + this.decouper(line, ":"));
                        }
                        if (line.contains(debut))
                        {
                            System.out.println("Début : " + this.decouper(line, ":"));
                        }
                        /*if (!line.contains(nomBatch) && !line.contains(versionBatch) && !line.contains(versionAppli)
                            && !line.contains(debut) && !line.contains(fin) && !line.contains(duree) && !line.contains(section1)
                            && !line.contains(section2) && !line.contains(section3)  && !line.contains(end))
                        {
                            System.out.println(line);
                        }*/
 
                        /* ============================== SECTION 3 ============================== */
                        if (line.contains(fin))
                        {
                            System.out.println("Fin : " + this.decouper(line, ":"));
                        }
                        if (line.contains(duree))
                        {
                            System.out.println("Durée : " + this.decouper(line, ":"));
                        }
                        line = reader.readLine();
                    }
                    reader.close();
                }
            }
        }
        catch (IOException | MessagingException exception)
        {
            System.out.println("Erreur lors de la lecture : " + exception.getMessage());
        }
    }
ça c'est la dernière version que j'ai. même ça c'est pas bon parce que j'ai vu qu'il y avait des données qui sont en dehors des 3 sections (que je n'ai pas besoin de traiter)
est-ce que vous pouvez m'aider svp