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

avec Java Discussion :

Recoller une chaine de caractères


Sujet :

avec Java

  1. #1
    Membre confirmé Avatar de hugoclo
    Profil pro
    Inscrit en
    décembre 2007
    Messages
    615
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : décembre 2007
    Messages : 615
    Points : 480
    Points
    480
    Par défaut Recoller une chaine de caractères
    Bonsoir,
    J'utilise ce bout de code pour ecouter un port UDP
    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
    public static void updateBouton(){
        //On crée un Worker générique, cette fois
     
        SwingWorker sw = new SwingWorker<String, String>(){
          protected String doInBackground() throws Exception {
           String nees = null;
             while(true)
            {
              String NewsMsg = null;
              String TamponAIS;
                try
                {
                   try (DatagramSocket ClientSoc = new DatagramSocket(6020)) {
     
                       byte Receivebuff[]=new byte[1024];
                        //NewsMsg = null;
                        DatagramPacket dp=new DatagramPacket(Receivebuff,Receivebuff.length);
                        ClientSoc.receive(dp);
                        NewsMsg = new String(dp.getData(),0,dp.getLength());
                         BufferedReader entree = new BufferedReader(new StringReader(NewsMsg));
                      TamponAIS = NewsMsg;
                        ClientSoc.close();
                        Thread.sleep(50);
                        if((TamponAIS.substring(0, 6).equals("!AIVDM"))&&(TamponAIS.length()>19)){
                             TrameAIS = TamponAIS;
                           this.doInBackground();
                            // System.out.println("1");
                             // System.out.print(1 + "::" + TrameAIS);
     
                        }
                        else if((TamponAIS.substring(0, 6) != "$PNMLS") && (TamponAIS.substring(0, 6) != "!AIVDM")){
     
     
                            TrameAIS = TrameAIS + TamponAIS;
     
                                 System.out.print( TrameAIS);
     
                            }
                    }
                }
                catch(Exception ex)
                {
                    ex.printStackTrace();
                }
                      return nees;
                        }
     
          }
    Les trames arrivent comme ceci
    !AIVDM,1,1,,B,1:182j003R0K3T4H>PdLsbI20
    HC8,0*51
    !AIVDM,1,1,
    ,A,13ccWT001s0Hss4HWKicLa<2080d,0*08
    !AIVDM,1,1,,A,13chtv003
    $PNMLS,30,20,3*52
    !AIVDM,1,1,,A,1:182j003R0K2
    $PNMLS,31,20,3*53
    F04Sd,0*1E
    $PNMLS,28,21,3*5A
    2f:H>agttbHN0@8Q,0*05
    ce que je souhaiterai c'est de passer de
    !AIVDM,1,1,,B,1:182j003R0K3T4H>PdLsbI20
    HC8,0*51
    à
    !AIVDM,1,1,,B,1:182j003R0K3T4H>PdLsbI20HC8,0*51
    .
    Tout en ignorant les trames commencant par"$PNMLS"
    Voici mon resultat
    $PNMLS,33,19,3*5B
    $PNMLS,34,19,3*5C
    !AIVDM,1,1,,A,1:182j0vCQ0Jlp@HA5p=1JLN00S<,0*69
    $PNMLS,33,19,3*5B
    !AIVDM,1,1,,A,1:182j0vCQ0Jlp@HA5p=1JLN00S<,0*69
    $PNMLS,33,19,3*5B
    $PNMLS,33,19,3*5B
    !AIVDM,1,1,,A,1:182j0vCQ0Jlp@HA5p=1JLN00S<,0*69
    $PNMLS,33,19,3*5B
    $PNMLS,33,19,3*5B
    $PNMLS,33,19,3*5B
    je n'arrive pas a virer "$PNMLS"
    Lorsque le sage montre la lune du doigt l'idiot regarde le doigt.

  2. #2
    Membre confirmé
    Avatar de Laine
    Femme Profil pro
    Doctorat informatique
    Inscrit en
    mars 2013
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Algérie

    Informations professionnelles :
    Activité : Doctorat informatique

    Informations forums :
    Inscription : mars 2013
    Messages : 238
    Points : 646
    Points
    646
    Par défaut
    Salut

    Pourquoi ne pas utiliser la méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maTrame.contains("$PNMLS")
    Du String pour détecter les trames contenant la chaine de caractère "$PNMLS" ?

  3. #3
    Membre confirmé Avatar de hugoclo
    Profil pro
    Inscrit en
    décembre 2007
    Messages
    615
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : décembre 2007
    Messages : 615
    Points : 480
    Points
    480
    Par défaut
    Merci pour la réponse.
    Mais je fais comment avec ma clause if car
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    else if(TamponAIS.substring(0, 6) != "$PNMLS")) && (TamponAIS.substring(0, 6) != "!AIVDM"))
    n'a pas le même sens que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    else if(TamponAIS.contains("$PNMLS")) && (TamponAIS.contains("!AIVDM"))
    Lorsque le sage montre la lune du doigt l'idiot regarde le doigt.

  4. #4
    Membre confirmé
    Avatar de Laine
    Femme Profil pro
    Doctorat informatique
    Inscrit en
    mars 2013
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Algérie

    Informations professionnelles :
    Activité : Doctorat informatique

    Informations forums :
    Inscription : mars 2013
    Messages : 238
    Points : 646
    Points
    646
    Par défaut
    Si ce que tu veux dire par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    else if(TamponAIS.substring(0, 6) != "$PNMLS")) && (TamponAIS.substring(0, 6) != "!AIVDM"))
    est ne "contient pas"

    Alors tu n'a qu'a rajouter le signe de négation "!" ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    else if( (!TamponAIS.contains("$PNMLS")) &&  (!TamponAIS.contains("!AIVDM")) )

  5. #5
    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 803
    Points
    48 803
    Par défaut
    On ne compare jamais des String avec ==, on utilise la méthode equals.

  6. #6
    Membre confirmé Avatar de hugoclo
    Profil pro
    Inscrit en
    décembre 2007
    Messages
    615
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : décembre 2007
    Messages : 615
    Points : 480
    Points
    480
    Par défaut
    Parfait Merci.
    Lorsque le sage montre la lune du doigt l'idiot regarde le doigt.

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 23/12/2013, 16h40
  2. Crypter une chaine de caractères
    Par Yabo dans le forum Réseau
    Réponses: 18
    Dernier message: 19/11/2004, 23h04
  3. Réponses: 9
    Dernier message: 17/01/2003, 11h45
  4. Lire Une Chaine De Caractères
    Par Jonathan_Korvitch dans le forum C
    Réponses: 12
    Dernier message: 07/01/2003, 05h37
  5. Réponses: 2
    Dernier message: 06/12/2002, 07h50

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