Recuperation des dix derniers lignes d'une ligne de caractere

Fermé
mkalakh01 Messages postés 5 Date d'inscription vendredi 2 septembre 2016 Statut Membre Dernière intervention 5 septembre 2016 - 2 sept. 2016 à 18:03
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 - 5 sept. 2016 à 18:28
Bonjour,

je veux recuperer les dix derniers lignes de liste de chaine de caractère j'ai essaie mais je me bloque
la voila <<BodetServiceTomcat.exe 2248 Services 0 632�464 Ko>>
Je veux juste recuperer <<632�464 Ko>>
Merci de m'aider svp :)
A voir également:

3 réponses

Chris 94 Messages postés 50978 Date d'inscription mardi 8 janvier 2008 Statut Modérateur Dernière intervention 17 février 2023 7 327
2 sept. 2016 à 18:07
Bonjour,

C'est pour quand ?
0
mkalakh01 Messages postés 5 Date d'inscription vendredi 2 septembre 2016 Statut Membre Dernière intervention 5 septembre 2016
2 sept. 2016 à 18:12
Bonjour,

Si vous acceptiez je le veux avant lundi et merci bcp pour votre attention

cordialement
:)
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
2 sept. 2016 à 18:44
Bonjour,

Si le fichier que tu lis a une structure figée tu peux faire une extraction avec une expression régulière :

public static Map<Integer, List<String>> findInFile(File file, Pattern pattern) throws IOException {
    try (Scanner sc = new Scanner(file)) {
        Map<Integer, List<String>> results = new TreeMap<>();
        for (int line = 1; sc.hasNextLine(); line++) {
            Matcher matcher = pattern.matcher(sc.nextLine());
            if (matcher.find()) {
                List<String> result = new ArrayList<>(matcher.groupCount() + 1);
                for (int i = 0; i <= matcher.groupCount(); i++)
                    result.add(matcher.group(i));
                results.put(line, result);
            }
        }
        return results;
    }
}

public static void main(String[] args) throws Exception {
    Map<Integer, List<String>> map = findInFile(new File("C:/rsultat.txt"), Pattern.compile("BodetServiceTomcat\\.exe\\s+\\d+ Services\\s+\\d+\\s+([^\\s]+ Ko)"));
    for (Entry<Integer, List<String>> entry : map.entrySet())
        System.out.println("Result on line " + entry.getKey() + ": " + entry.getValue().get(1));
}

Ce qui donne :
Result on line 4: 632�464 Ko

Remarque : à l'avenir merci de copier coller le code plutôt que de faire une impression écran, c'est plus pratique pour faire des tests...
0
mkalakh01 Messages postés 5 Date d'inscription vendredi 2 septembre 2016 Statut Membre Dernière intervention 5 septembre 2016
2 sept. 2016 à 19:07
ca me recuper ca BUILD SUCCESSFUL (total time: 0 seconds)
il m'affiche pas ca 632�464 Ko
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015 > mkalakh01 Messages postés 5 Date d'inscription vendredi 2 septembre 2016 Statut Membre Dernière intervention 5 septembre 2016
2 sept. 2016 à 19:20
S'il n'y a pas de résultat c'est que l'expression régulière ne correspond pas au contenu de ton fichier, il faut donc l'adapter à ton exemple exact.
0
mkalakh01 Messages postés 5 Date d'inscription vendredi 2 septembre 2016 Statut Membre Dernière intervention 5 septembre 2016
5 sept. 2016 à 14:21
Bonjour j'ai fais votre copier coller votre code mais resultat ca me donne rien
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
5 sept. 2016 à 18:28
J'ai déjà répondu à ça : il faut lire...
S'il n'y a pas de résultat c'est que l'expression régulière ne correspond pas au contenu de ton fichier, il faut donc l'adapter à ton exemple exact.
Pourtant j'ai testé ton exemple (dans la discussion que tu as créé en doublon !!!) et avec l'expression régulière que j'ai donné ça matche bien...

Voir par exemple sur myregexp.com
0