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 :

Parcourir un résultat d'une commande avec Java StringBuffer


Sujet :

Java

  1. #1
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Avril 2013
    Messages : 286
    Points : 76
    Points
    76
    Par défaut Parcourir un résultat d'une commande avec Java StringBuffer
    Bonsoir
    je veux que vous m'aider à faire un code qui parcourt le résultat d'une commande sur une routeur que j'y accède via telnet en java
    bon la commande quand je tape sur cmd est :
    #show run int Fa0/0.20

    voilà le résultat qu'elle donne et que je dois le lire prendre des données et les stocker dans un tableau

    EDGE02#sh run int Fa3/0.20
    Building configuration...

    Current configuration : 360 bytes
    !
    interface FastEthernet0/0.20
    description : Amgala_Voix
    encapsulation dot1Q 20
    ip vrf forwarding sip
    ip address 10.8.19.23 255.255.255.24
    shutdown

    end

    Alors je lance la commande sur java via le ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    write("s run int Fa0/0.20");
    après je dois lire jusqu'à "interface" puis prendre le numero qui est après le (.)
    c'est à dire 20 et le stocker dans un array
    ensuite continuer à lire jusqu'à description : et prendre "Amgala_Voix" le stocker dans le array

    c'est juste un exemple pour le type "Fa" j'ai plein de résultats qui se différents d'un type à un autre
    alors s'il vous plait y a quelqu'un peut m'aider à lire et et parcourir ce résultat à l'aide de stringBuffer et char ch =(char) in.read(ch)

  2. #2
    Membre actif Avatar de hbennou
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2008
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 162
    Points : 205
    Points
    205
    Par défaut
    Si les réponses sont toujours de la meme structure tu peux récupérer l'index de "description :" et de "encapsulation" puis récupérer le String qui est entre les deux index:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    int indexDeb = bf.indexOf("description : ");
    int indexFin = bf.indexOf("encapsulation");
    bf.substring(indexDeb+14,indexFin); //14 ca correspond à la longeur de desciption
    Sinon tu peux utiliser les expressions réguliéres

  3. #3
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Avril 2013
    Messages : 286
    Points : 76
    Points
    76
    Par défaut
    Merci mais le résultat se change d'un type à un autre et moi j'ai trois types les Fa (fastethernet) les Gi(Gigaethernet) et les Vl(vlans)
    donc je dois faire des if sur chacun d'eux et parcourir le résultat
    par exemple: pour Fa
    LNS_Backup#show run int Fa0/0.36
    Building configuration...

    Current configuration : 462 bytes
    !
    interface FastEthernet0/0.36
    description Connected To CAT06-AGG_CASA_G1/0/14
    encapsulation dot1Q 3612
    ip address 172.16.2.44 255.255.255.252
    no ip redirects
    no ip proxy-arp

    end

    Puisque moi j'ai stocker les interfaces dans un array donc:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if(data=Fa)
    {
    do{
    char ch=(char) in.read(ch);
    sb.append(ch);
    }while(sb.tostring().contains("Interface"));
     
    }
    bon c'est juste je vous montre comment je dois parcourir le résultat et ce que je dois prendre et ajouter dans un tableau et le nombre 36 qui est là :interface FastEthernet0/0.36
    ensuite vider le buffer et continuer à lire jusqu'a description et prendre le mot correspondant

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Executer une commande avec sudo a partir de java
    Par barabas123 dans le forum Langage
    Réponses: 16
    Dernier message: 05/01/2007, 16h47
  2. Comment insérer le résultat d'une commande avec vim
    Par zelda dans le forum Applications et environnements graphiques
    Réponses: 4
    Dernier message: 28/12/2005, 09h32
  3. Tester le résultat d'une commande avec ksh
    Par jotake dans le forum Linux
    Réponses: 3
    Dernier message: 28/09/2005, 11h59
  4. [Image]Créer une image avec JAVA 1.1
    Par burno dans le forum 2D
    Réponses: 4
    Dernier message: 11/08/2004, 09h19
  5. Ecrire le résultat d'une commande dans un fichier de l' OS
    Par Labienus dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 26/02/2004, 11h04

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