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

Deski Discussion :

Decouper champs avec separateur constant


Sujet :

Deski

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2004
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 7
    Par défaut Decouper champs avec separateur constant
    Bonjour, voici mon problème :

    J'ai un champ qui est succession de plusieurs valeurs.
    Exemple :

    BLA BLA HORS DELEGATION BLI BLI HORS DELEGATION BLO BLO HORS DELEG BLU BLU HORS DELEGATION

    Je sais que je vais devoir créer un variable par champs.
    Mon but, c'est récuperer dans un champ le BLA BLA et un autre BLI BLI etc..

    Pour BLA BLA, pas de probleme:
    = SousChaîne(<Mon objet> ,1 ,Pos(<mon objet> ,"HORS DELEGATION")-1)

    Mais les autres j'arrive pas....
    Merci pour votre aide.

  2. #2
    Membre éclairé
    Inscrit en
    Novembre 2006
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 84
    Par défaut
    est ce que vos champs sont de longueur constante ?
    est ce que votre séparateur est 'HORS DELEGATION' ou il y a un aute séparateur ?

  3. #3
    Membre Expert
    Avatar de bastoonet
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Septembre 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 011
    Par défaut
    Je pense que le mieux est de faire ça à l'alimentation de la base de donéne de ton infocentre !!

    ... il y a des fonction oracle ou autre très bien pour récupérer le sposition des occurences de chaine, ce qui peuit aider pour une extraction

  4. #4
    Nouveau membre du Club
    Inscrit en
    Avril 2004
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 7
    Par défaut
    Merci de ta réponse.
    Effectivement ce qui precedent "HORS DELEGATION" n'est de pas longeur constante.
    XXXXX HORS DELEGATION X HORS DELEGATION XXX HORS DELEGATION
    etc...
    Sinon c'est impossible de le faire en amont,c'est un fichier texte en entrée.

  5. #5
    Membre Expert
    Avatar de bastoonet
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Septembre 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 011
    Par défaut
    en gros il faudrait le traiter avec une macro excel en amont afin de mettre dans une colonne les valeurs souhaitées...

  6. #6
    Rédacteur
    Avatar de Bruno2r
    Homme Profil pro
    Exploitation des données
    Inscrit en
    Décembre 2006
    Messages
    2 566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Exploitation des données
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 566
    Par défaut Précision
    Y at il un nombre fini de champs (BLA BLA,BLI BLI,BLO BLO,BLU BLU) ?
    et termine t on par BLUBLUBLU ou par HORS DELEGATION ?
    Précisez la VERSION !
    Un message vous a aidé ? Votez en cliquant sur Pensez au bouton
    Tutoriels BO et FAQ BO
    "A vouloir repousser ses limites ... On risque d'en prendre connaissance !!!"

  7. #7
    Nouveau membre du Club
    Inscrit en
    Avril 2004
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 7
    Par défaut
    Tu peux avoir des lignes où dans ce champ il n'y aura pas de "XXX HORS DELEGATIONXXX'.
    Ca peut aller de 0 à 5 HORS DELEGATIONS.
    merci de votre aide.

  8. #8
    Rédacteur
    Avatar de Bruno2r
    Homme Profil pro
    Exploitation des données
    Inscrit en
    Décembre 2006
    Messages
    2 566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Exploitation des données
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 566
    Par défaut Toujours pas assez précis pour pouvoir t'aider
    Pourrais tu nous montrer quelques cas de figure REELS ?
    Ca aiderait à y voir clair
    je pensais que ton hors delegations représentait le séparateur constant et tu me dis qu'il peut ne pas y en avoir ...
    Précisez la VERSION !
    Un message vous a aidé ? Votez en cliquant sur Pensez au bouton
    Tutoriels BO et FAQ BO
    "A vouloir repousser ses limites ... On risque d'en prendre connaissance !!!"

  9. #9
    Nouveau membre du Club
    Inscrit en
    Avril 2004
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 7
    Par défaut
    OK OK soyons plus clair.
    Par exemple:

    id|nom|prenom|note

    1|paul|eric|remarque1
    2|jean|edouard|remarque1 remarque2 HORS DELEGATION remarque3 HORS DELEGATION
    3|steeve|renard|remarque1 HORS DELEGATION remarque 4
    4|chris|marc|remarque3 HORS DELEGATION remarque 4 HORS DELEGATION remarque5 HORS DELEGATION remarque6 HORS DELEGATION remarque6 HORS DELEGATION

    En sortie je voudrais dans mon rapport:

    id|nom|prenom|note1|note2|note3|note4|note5|note6

    1|paul|eric|remarque1|null|null|null|null|null
    2|jean|edouard|remarque1|remarque2|remarque3|null|null|null
    3|steeve|renard|remarque1|remarque4|null|null|null|null
    4|chris|marc|remarque3|remarque 4|remarque5|remarque6|remarque7

    Pour l'id=4, note1=remarque3 car c'est la premiere occurence de HORS DELEGATION.
    note1=premiere occurence de HORS DELEGATION ou pas
    note2=seconde occurence de HORS DELEGATION ou pas
    etc...
    est-ce plus clair?

  10. #10
    Rédacteur
    Avatar de Bruno2r
    Homme Profil pro
    Exploitation des données
    Inscrit en
    Décembre 2006
    Messages
    2 566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Exploitation des données
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 566
    Par défaut Merci pour l'exemple ça aide
    La solution n'est pas simple car il n'y a pas de fonction équivalente à
    INSTR (char1,char2 [,n[,m]]) dans Oracle où notamment
    n permet de préciser la position de début de la recherche
    m précise quelle occurence de la chaîne recherchée donne sa position

    Nous n'avons d'approchant que Pos(dans quoi ?, quoi?)= numéric
    en imbriquand souschaîne() et longueur() et pos()
    et pour éviter une formule illisible parceque très longue,
    j'ai choisi de créer des variables

    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
     
    <NOTE1> = Si (Pos(<REMARQUES> ," HORS DELEGATION") >0) 
    Alors SousChaîne(<REMARQUES> ,1 ,Pos(<REMARQUES> ," HORS DELEGATION") -1) 
    Sinon <REMARQUES>
     
    <RNIV2> = Droite(<REMARQUES> ,Longueur(<REMARQUES>)-Longueur(<NOTE1>)-17)
     
    <NOTE2> = Si (Pos(<RNIV2> ," HORS DELEGATION") >0) 
    Alors SousChaîne(<RNIV2> ,1 ,Pos(<REMARQUES> ," HORS DELEGATION") -1) 
    Sinon <RNIV2>
     
    <RNIV3> =Droite(<REMARQUES> ,Longueur(<REMARQUES>)-Longueur(<NOTE1>)-Longueur(<NOTE2>)-34)
     
    <note3> = Si (Pos(<RNIV3> ," HORS DELEGATION") >0) 
    Alors SousChaîne(<RNIV3> ,1 ,Pos(<REMARQUES> ," HORS DELEGATION") -1) 
    Sinon <RNIV3>
     
    ETC... jusqu'à 5 ou 6 ou plus
    Il suffit ensuite de placer les variables <NOTEi> dans des colonnes du rapport.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Tableau de départ ...
    ID NOM PRENOM REMARQUES
    1 paul eric remarque1
    2 jean edouard remarque1 HORS DELEGATION remarque2 HORS DELEGATION remarque3 HORS DELEGATION
    3 steeve renard remarque1 HORS DELEGATION remarque4
    4 chris marc remarque3 HORS DELEGATION remarque4 HORS DELEGATION remarque5 HORS DELEGATION remarque6 HORS DELEGATION remarque7 HORS DELEGATION
     
    Tableau résultat ...
    ID NOM  PRENOM NOTE1 NOTE2  NOTE3
    1 paul eric remarque1  
    2 jean edouard remarque1 remarque2 remarque3
    3 steeve renard remarque1 remarque4 
    4 chris marc remarque3 remarque4 remarque5
    Est-ce-que cela t'aide ?
    Précisez la VERSION !
    Un message vous a aidé ? Votez en cliquant sur Pensez au bouton
    Tutoriels BO et FAQ BO
    "A vouloir repousser ses limites ... On risque d'en prendre connaissance !!!"

  11. #11
    Nouveau membre du Club
    Inscrit en
    Avril 2004
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 7
    Par défaut
    Waip super!

  12. #12
    Rédacteur
    Avatar de Bruno2r
    Homme Profil pro
    Exploitation des données
    Inscrit en
    Décembre 2006
    Messages
    2 566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Exploitation des données
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 566
    Par défaut Résolu ?
    Content que tu sois content ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Peut-être pourrais on améliorer la méthode en stockant " HORS DELEGATION " dans une variable <SEPARATEUR> et sa taille dans une variable <TAILLESEPARAT> = Longueur(<SEPARATEUR>)
    pour les utiliser dans les formules ... ?
    Si ton problème est résolu indique le, merci
    Précisez la VERSION !
    Un message vous a aidé ? Votez en cliquant sur Pensez au bouton
    Tutoriels BO et FAQ BO
    "A vouloir repousser ses limites ... On risque d'en prendre connaissance !!!"

Discussions similaires

  1. creer champ avec valeur constante dans resultat de requete
    Par freejeje dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 20/05/2005, 10h52
  2. Update champ avec le meme champ de la meme table
    Par Baquardie dans le forum Langage SQL
    Réponses: 7
    Dernier message: 04/06/2004, 11h17
  3. ASP champs avec même nom
    Par pete007 dans le forum ASP
    Réponses: 8
    Dernier message: 03/05/2004, 22h58
  4. [CR][ASP.NET] Un champ avec plusieurs polices...
    Par David.V dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 08/04/2004, 14h19
  5. Comment renommer un champ avec Module BD?
    Par technico dans le forum Bases de données
    Réponses: 4
    Dernier message: 27/01/2004, 21h24

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