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

Langage Java Discussion :

Probleme de Chaines probables


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 236
    Par défaut Probleme de Chaines probables
    bonjour a tous!

    Voila j'ai un tout petit probleme qui me prend la tête depuis hier.

    Je souhaite avoir, a partir de plusieurs champs une adresses dites logiques que j'obtient par concatenation de plusieurs resultats de modulo.

    Le probleme est que l'utilisateur peut lui ne pas renseigner tout les champs me permettant d'obtenir cette adresse.

    Exemple: j'ai trois attribut a b c et d . a et c sont renseigné, pas b.
    Ce qui me fait par exemple obtenir une adresse du genre 12 ** 09 ** (au hasard hein)Maintenant je souhaiterait obtenir dans une liste l'ensemble des possibilités des adresses, c'est a dire remplacer les * par un nombre compris entre 00 et un nombre (variable HC mais osef).

    j'ai commencé a definir un pattern du coup, mais je ne suis pas sur que ca serve a ca et je trouve pas comment obtenir toutes mes adresses.

    Donc voila je bloque ici.
    Si quelqu'un sait comment me sortir de cette situation je lui en serait très reconnaissant.

    Code:
    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
     
      //Regarder les atrtibuts clé recherchés.
                    String AdrLog="";
                    ArrayList ListeAtt = new ArrayList();
                    ArrayList ListeVal = new ArrayList();
                    Rset = Stmt.executeQuery("SELECT HC,Type_A FROM ATTRIBUT WHERE IdFichier="+Id_fic+" AND HC<>0 ORDER BY ID");
                    for(int i=0 ; i<vect_label.size() ; i++)
                    {
                        if(Rset.next())
                        {
                            int HC = Rset.getInt("HC");
                            if(!vect_jtf.get(i).getText().equals("")) //** Si le champ n'est pas vide 
                            {
                                  ListeAtt.add(vect_label.get(i).getText());
                                  if(Rset.getString("Type_A").equalsIgnoreCase("CHAR"))
                                  {
                                      if(Integer.valueOf(vect_jtf.get(i).getText().hashCode())%HC<10)
                                            AdrLog+="0"+Math.abs(vect_jtf.get(i).getText().toLowerCase().hashCode()%Rset.getInt("HC"));      
                                      else
                                          AdrLog+=Math.abs(vect_jtf.get(i).getText().toLowerCase().hashCode()%Rset.getInt("HC"));      
                                  }
                                  else
                                  {
                                       if((Integer.valueOf(vect_jtf.get(i).getText())%HC)<10)
                                           AdrLog+="0"+Math.abs(Integer.valueOf(vect_jtf.get(i).getText())%Rset.getInt("HC"));
                                           //ListeVal.add(Integer.valueOf("0"+vect_jtf.get(i).getText())%Rset.getInt("HC"));
                                       else
                                           AdrLog+=Math.abs(Integer.valueOf(vect_jtf.get(i).getText())%Rset.getInt("HC"));
                                           //ListeVal.add(Integer.valueOf(vect_jtf.get(i).getText())%Rset.getInt("HC"));
                                  }                  
                            }
     
                            else //si le champ est vide
                            {
     
                                AdrLog+="+[0-"+Rset.getInt("HC")+"]";
                                System.out.println("Champs non renseigné");
                            }
                        }
     
                    }
     
                    System.out.println("Masque Adresse logique:"+AdrLog);

  2. #2
    Membre éprouvé Avatar de Celeborn
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 133
    Par défaut
    D'une manière générale, (cela ne résoud pas ton pb je te l'accorde), pourquoi de pas faire plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if(vect_jtf.get(i).getText().length() != 0))
    au lieu de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if(!vect_jtf.get(i).getText().equals("")) //** Si le champ n'est pas vide
    De la même manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if("CHAR".equalsIgnoreCase(string))
    au lieu de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(Rset.getString("Type_A").equalsIgnoreCase("CHAR"))
    ?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 236
    Par défaut
    Merci mais je traite bien mes conditions, j'ai pas de problèmes de ce point de vue la.
    Et oui ça ne résout pas mon problème

  4. #4
    Membre éprouvé Avatar de Celeborn
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 133
    Par défaut
    Tu les traites bien, ..., ça je sais pas. Ah bon avis si ta chaîne est null tu te retrouves a lever une nPE, et ça je ne pense pas que tu le voulais.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 236
    Par défaut
    Ma chaine n'est jamais nul car je la recupere d'une table oracle que j'ai moi même remplie au préalable et qui ne sera jamais null.
    mais bon la n'est pas le probleme ce programme n'est pas déstiné a avoir un grand avenir, son sort sera d'etre jugé demain et de me donner je l'espere une bonne note.
    ll ne me reste qu'a trouvé les differentes adresses logiques, le reste du code est deja fait..

  6. #6
    Membre éprouvé Avatar de Celeborn
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 133
    Par défaut
    Si ta question est juste remplacer les * par des chiffres (indépendamment du code que t'as fournit avec BdD, etc), je te conseillerais d'utiliser une méthode récursive et distinct pour faire ce traitement (p.e existe il une méthode toute faite dans l'api à vérifier)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    List<String> maMethode(String entrée) {
        List liste;
        si entrée contient * alors {
            for symbole de 0 à F {
              liste.add (maMethode(entrée.remplacer(* par symbole)));
        }
        return liste
    }

  7. #7
    Membre éprouvé Avatar de Celeborn
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 133
    Par défaut
    Citation Envoyé par shub Voir le message
    Ma chaine n'est jamais nul car je la recupere d'une table oracle que j'ai moi même remplie au préalable et qui ne sera jamais null.
    Si tu pouvais savoir le nombre de bug qui proviennent de cas qui ne sont pas censés arriver tu ne dirais plus ça ! Surtout que dans ce cas ce test ne te compte rien, marche tout le temps, est plus lisible, et est surtout idiomatique.

Discussions similaires

  1. probleme de chaines
    Par cellimo dans le forum C
    Réponses: 9
    Dernier message: 16/01/2006, 16h48
  2. probleme de chaine connexion
    Par bousghiri dans le forum Access
    Réponses: 1
    Dernier message: 09/12/2005, 13h48
  3. Probleme liste chainée
    Par Raton dans le forum C++
    Réponses: 8
    Dernier message: 15/11/2005, 19h25
  4. [C#] [Oracle] Problème de chaine de connexion
    Par didoboy dans le forum ASP.NET
    Réponses: 9
    Dernier message: 08/01/2005, 11h32
  5. Probleme de chaine de caractéres et Insert
    Par Revan012 dans le forum ASP
    Réponses: 5
    Dernier message: 21/06/2004, 10h28

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