20 Replies Latest reply: Dec 29, 2016 9:29 AM by Maurice ludo RSS

    Modifier contenu champ

    Maurice ludo

      Bonjour,

      Je voudrais vous demander comment je peux supprimer les extimités de contenu de champ  <strong>Contact professionnel<br /></strong>

      Ci-joint un Screenshots

      Cordialement

      Maurice

        • Re: Modifier contenu champ
          Sébastien Fatoux

          Salut,

           

          tu devrais essayer ça :

           

          TextBetween(Question_1, '>', '<', 1)

           

          Tu peux l'utiliser dans une expression, mais tu devrmais l'utiliser dans le script pour nettoyer tes champs.

            • Re: Modifier contenu champ
              Maurice ludo

              Sébastien,

              Avec ta solution je n'arrive pas à récupères toutes les valeurs, les valeurs sans <Strong> je ne les récupères pas.

              Merci

                • Re: Modifier contenu champ
                  Sébastien Fatoux

                  Bonjour,

                   

                  ma solution ne fonctionne correctement que si la structure de la réponse est constante.

                   

                  Vu que cela n'est pas le cas, il faut partir sur un nettoyage des tags comme l'a proposé Didier. Mais je vais te proposer une solution plus simple que la sienne en utilisant une table de mapping et la fonction MapSubstring (et personnellement j'ai supprimé les 2 premières lignes de ton fichier (entêtes et commentaires) au chargement pour en améliorer la lisibilité):

                   

                   

                  // Liste des tags a supprimer (Attention, la fonction MapSubstring est case sensitive)

                  HtmlTag_Map:
                  mapping LOAD * INLINE [
                  HtmlTag, Substitut
                  <strong>,
                  </strong>,
                  <br />,
                  ]
                  ;

                   

                  LOAD @1 as [ID personne interrogée],
                  @2 as [ID collecteur],
                  @3 as [Date de début],
                  @4 as [Date de fin],
                  @5 as [Adresse IP],
                  @6 as [Adresse e-mail],
                  @7 as Prénom,
                  @8 as Nom,
                  @9 as [Données personnalisées],
                  MapSubstring('HtmlTag_Map',@10) as Question_1,
                  // @11,
                    MapSubstring('HtmlTag_Map',@12) as Question_2,
                  MapSubstring('HtmlTag_Map',@13) as Question_3,
                  // @14,
                    MapSubstring('HtmlTag_Map',@15) as Question_4,
                  MapSubstring('HtmlTag_Map',@16) as Question_5
                  // @17,
                    MapSubstring('HtmlTag_Map',@18) as Question_6,
                  // @19,
                  // @20,
                  // @21,
                  // @22,
                  // @23,
                    MapSubstring('HtmlTag_Map',@24) as Question_7,
                  MapSubstring('HtmlTag_Map',@25) as Question_8,
                  MapSubstring('HtmlTag_Map',@26) as Question_9,
                  MapSubstring('HtmlTag_Map',@27) as Question_10
                  // @28,
                  // @29,
                  // @30,
                  // @31,
                  // @32
                  FROM [Z:\14\Sheet_1_actu.xls]
                  (
                  biff, no labels, header is 2 lines, table is Sheet1$);

              • Re: Modifier contenu champ
                Didier DELANSAY

                Si j'ai bien compris, ce n'est pas seulement les signes < et > mais une chaîne de caractères.

                 

                Ma solution implique que tu connaisses la chaine de caractères à supprimer.

                 

                Au chargement et pour chaque champs (ou colonne) :

                if (nom_de_ta_chaine = '<\strong>' ,replace(nom_de_ta_chaine,'<\strong>','') ,
                   if (nom_de_ta_chaine = '<strong>' ,replace(nom_de_ta_chaine,'<strong>','') ,
                      if (nom_de_ta_chaine = '<br \ > ' ,replace(nom_de_ta_chaine,'<br \ > ',''), nom_de_ta_chaine
                  ))) as  nom_nouvelle_chaine

                 

                // (tu peux aussi utiliser nom_de_ta_chaine si tu le souhaites). 

                Didier

                  • Re: Modifier contenu champ
                    Maurice ludo

                    Bonjour Didier,

                    voici le résultat j'ai toujours <strong> dans mon champ:

                     

                    if ([<span style="color: #333399; font-size: 14pt; font-family: arial,helvetica,sans-serif;">Pour quelle raison avez-vous contacté notre service clients ?</span>] = '<\strong>' ,replace([<span style="color: #333399; font-size: 14pt; font-family: arial,helvetica,sans-serif;">Pour quelle raison avez-vous contacté notre service clients ?</span>],'<\strong>','') ,

                      if ([<span style="color: #333399; font-size: 14pt; font-family: arial,helvetica,sans-serif;">Pour quelle raison avez-vous contacté notre service clients ?</span>] = '<strong>' ,replace([<span style="color: #333399; font-size: 14pt; font-family: arial,helvetica,sans-serif;">Pour quelle raison avez-vous contacté notre service clients ?</span>],'<strong>','') ,

                          if ([<span style="color: #333399; font-size: 14pt; font-family: arial,helvetica,sans-serif;">Pour quelle raison avez-vous contacté notre service clients ?</span>] = '<br \ > ' ,replace([<span style="color: #333399; font-size: 14pt; font-family: arial,helvetica,sans-serif;">Pour quelle raison avez-vous contacté notre service clients ?</span>],'<br \ > ',''), [<span style="color: #333399; font-size: 14pt; font-family: arial,helvetica,sans-serif;">Pour quelle raison avez-vous contacté notre service clients ?</span>]

                      ))) as  nom_nouvelle_chaine,

                      • Re: Modifier contenu champ
                        Didier DELANSAY

                        Bonjour Maurice,

                         

                        Peux-tu m'envoyer ta source STP ?

                         

                        Didier

                          • Re: Modifier contenu champ
                            Maurice ludo

                            Par email?

                              • Re: Modifier contenu champ
                                Didier DELANSAY

                                Non, par copier coller du script s'il n'est pas trop long ou par pièce jointe via la community

                                  • Re: Modifier contenu champ
                                    Maurice ludo

                                    voici le script :

                                    LOAD [ID personne interrogée],

                                         [ID collecteur],

                                         [Date de début],

                                         [Date de fin],

                                         [Adresse IP],

                                         [Adresse e-mail],

                                         Prénom,

                                         Nom,

                                         [Données personnalisées],

                                         //[<span style="color: #333399; font-size: 14pt; font-family: arial,helvetica,sans-serif;">Comment avez-vous obtenu les coordonnées de notre service clients ?</span>],

                                          TextBetween([<span style="color: #333399; font-size: 14pt; font-family: arial,helvetica,sans-serif;">Comment avez-vous obtenu les coordonnées de notre service clients ?</span>], '>', '<', 1) as Question_1, 

                                         F11,

                                         //[<span style="color: #333399; font-size: 14pt; font-family: arial,helvetica,sans-serif;"> Par quel canal avez-vous contacté notre service clients ?</span>],

                                         TextBetween([<span style="color: #333399; font-size: 14pt; font-family: arial,helvetica,sans-serif;"> Par quel canal avez-vous contacté notre service clients ?</span>], '>', '<', 1) as Question_2,

                                         //[<span style="color: #333399; font-size: 14pt; font-family: arial,helvetica,sans-serif;">Pour quelle raison avez-vous contacté notre service clients ?</span>],

                                         //TextBetween([<span style="color: #333399; font-size: 14pt; font-family: arial,helvetica,sans-serif;">Pour quelle raison avez-vous contacté notre service clients ?</span>], '>', '<', 1) as Question_3,

                                         if ([<span style="color: #333399; font-size: 14pt; font-family: arial,helvetica,sans-serif;">Pour quelle raison avez-vous contacté notre service clients ?</span>] = '<\strong>' ,replace([<span style="color: #333399; font-size: 14pt; font-family: arial,helvetica,sans-serif;">Pour quelle raison avez-vous contacté notre service clients ?</span>],'<\strong>','') ,

                                       if ([<span style="color: #333399; font-size: 14pt; font-family: arial,helvetica,sans-serif;">Pour quelle raison avez-vous contacté notre service clients ?</span>] = '<strong>' ,replace([<span style="color: #333399; font-size: 14pt; font-family: arial,helvetica,sans-serif;">Pour quelle raison avez-vous contacté notre service clients ?</span>],'<strong>','') ,

                                          if ([<span style="color: #333399; font-size: 14pt; font-family: arial,helvetica,sans-serif;">Pour quelle raison avez-vous contacté notre service clients ?</span>] = '<br \ > ' ,replace([<span style="color: #333399; font-size: 14pt; font-family: arial,helvetica,sans-serif;">Pour quelle raison avez-vous contacté notre service clients ?</span>],'<br \ > ',''), [<span style="color: #333399; font-size: 14pt; font-family: arial,helvetica,sans-serif;">Pour quelle raison avez-vous contacté notre service clients ?</span>]

                                      ))) as  nom_nouvelle_chaine,

                                      TextBetween([<span style="color: #333399; font-size: 14pt; font-family: arial,helvetica,sans-serif;">Pour quelle raison avez-vous contacté notre service clients ?</span>], '>', '<', 1) as Question_3,

                                        

                                        

                                        

                                        

                                        

                                        

                                         F14,

                                         //[<span style="color: #333399; font-size: 14pt; font-family: arial,helvetica,sans-serif;">Avant de nous contacter, avez-vous consulté les informations et/ou rubriques d’assistance disponibles sur nos sites Internet ?</span>],

                                         TextBetween([<span style="color: #333399; font-size: 14pt; font-family: arial,helvetica,sans-serif;">Avant de nous contacter, avez-vous consulté les informations et/ou rubriques d’assistance disponibles sur nos sites Internet ?</span>], '>', '<', 1) as Question_4,

                                         //[<span style="color: #000080; font-size: 14pt; font-family: arial,helvetica,sans-serif;">Si oui, comment qualifieriez vous les résultats de votre recherche sur nos sites internet ?</span>],

                                          TextBetween([<span style="color: #000080; font-size: 14pt; font-family: arial,helvetica,sans-serif;">Si oui, comment qualifieriez vous les résultats de votre recherche sur nos sites internet ?</span>], '>', '<', 1) as Question_5,

                                         F17,

                                         //[<span style="color: #333399; font-size: 14pt; font-family: arial,helvetica,sans-serif;">Comment qualifieriez vous notre service clients sur les critères suivants ?</span>],

                                         TextBetween([<span style="color: #333399; font-size: 14pt; font-family: arial,helvetica,sans-serif;">Comment qualifieriez vous notre service clients sur les critères suivants ?</span>], '>', '<', 1) as Question_6,

                                         F19,

                                         F20,

                                         F21,

                                         F22,

                                         F23,

                                         //[<span style="color: #333399; font-size: 14pt; font-family: arial,helvetica,sans-serif;">Quel est est votre niveau de satisfaction globale ?</span>],

                                         TextBetween([<span style="color: #333399; font-size: 14pt; font-family: arial,helvetica,sans-serif;">Quel est est votre niveau de satisfaction globale ?</span>], '>', '<', 1) as Question_7,

                                        // [<span style="color: #333399; font-size: 14pt;"><span style="font-family: arial,helvetica,sans-serif;">Comment qualifieriez-vous l'évolution de la qualité de notre service clients ?</span><br /></span>],

                                         TextBetween([<span style="color: #333399; font-size: 14pt;"><span style="font-family: arial,helvetica,sans-serif;">Comment qualifieriez-vous l'évolution de la qualité de notre service clients ?</span><br /></span>], '>', '<', 1) as Question_8, 

                                         [<span style="color: #333399; font-size: 14pt; font-family: arial,helvetica,sans-serif;">Si vous avez des commentaires ou des suggestions d’amélioration concernant notre service clients, merci de les renseigner ci-dessous :<br /></span>]as Question_9,

                                        // TextBetween([<span style="color: #333399; font-size: 14pt; font-family: arial,helvetica,sans-serif;">Si vous avez des commentaires ou des suggestions d’amélioration concernant notre service clients, merci de les renseigner ci-dessous :<br /></span>], '>', '<', 1) as Question_9,

                                         [<span style="color: #333399; font-size: 14pt;"><span style="font-family: arial,helvetica,sans-serif;">(Facultatif) - Si vous souhaitez être contacté par nos équipes, veuillez renseigner vos coordonnées et préciser vos attentes ci-dessous :</span> <br /></span>]as Question_10,

                                          //TextBetween( [<span style="color: #333399; font-size: 14pt;"><span style="font-family: arial,helvetica,sans-serif;">(Facultatif) - Si vous souhaitez être contacté par nos équipes, veuillez renseigner vos coordonnées et préciser vos attentes ci-dessous :</span> <br /></span>], '>', '<', 1) as Question_10,

                                         F28,

                                         F29,

                                         F30,

                                         F31,

                                         F32

                                    FROM

                                    [Z:\14\Sheet_1_actu.xls]

                                    (biff, embedded labels, table is Sheet1$);

                                     

                                     

                                    EXIT Script;

                                      • Re: Modifier contenu champ
                                        Didier DELANSAY

                                        Peux-tu plutôt mettre le début (5 à 10 lignes maxi) de ton fichier Excel en pièce jointe, car j'ai l'impression que tu prends la fonction TextBetween de Sébastien, alors ma solution repose sur le contrôle d'une chaîne et son remplacement.

                                         

                                         

                                        Didier

                                        • Re: Modifier contenu champ
                                          Didier DELANSAY

                                          Pour insérer une pièce jointe, clique sur "Utiliser l'éditeur avancé" en haut et à droite, puis sur "Joindre" en bas à droite.

                                          Tu auras la possibilité e joindre une copie partielle de ton fichier.

                                          Didier

                                            • Re: Modifier contenu champ
                                              Maurice ludo

                                              Voici le fichier

                                              Merci

                                                • Re: Modifier contenu champ
                                                  Didier DELANSAY

                                                  Voici le script; J'ai dû décomposer les traitements car je n'avais pas compris à l'origine que les chaines pouvaient comprendre plusieurs modifications à opérer.

                                                   

                                                  Je joins le QV si tu as besoin.

                                                   

                                                  Note que les slach sont inversés et qu'il n'y a pas d'espace dans br /.

                                                   

                                                  Voici le script :

                                                   

                                                  // Je charge ton fichier dans une table en simplifiant certains noms de colonnes trop longs.
                                                  // Le plus simple aurait été de créer préalablement des noms d'entêtes "parlantes"

                                                  tmp1:
                                                  LOAD [ID personne interrogée],
                                                  [ID collecteur],
                                                  [Date de début],
                                                  [Date de fin],
                                                  [Adresse IP],
                                                  [Adresse e-mail],
                                                  Prénom,
                                                  Nom,
                                                  [Données personnalisées],
                                                  [<span style="color: #333399; font-size: 14pt; font-family: arial,helvetica,sans-serif;">Comment avez-vous obtenu les coordonnées de notre service clients ?</span>] as entete_1,
                                                  F11,
                                                  [<span style="color: #333399; font-size: 14pt; font-family: arial,helvetica,sans-serif;"> Par quel canal avez-vous contacté notre service clients ?</span>]  as entete_2,
                                                  [<span style="color: #333399; font-size: 14pt; font-family: arial,helvetica,sans-serif;">Pour quelle raison avez-vous contacté notre service clients ?</span>]  as entete_3
                                                  F14,
                                                  [<span style="color: #333399; font-size: 14pt; font-family: arial,helvetica,sans-serif;">Avant de nous contacter, avez-vous consulté les informations et/ou rubriques d’assistance disponibles sur nos sites Internet ?</span>] as entete_4
                                                  [<span style="color: #000080; font-size: 14pt; font-family: arial,helvetica,sans-serif;">Si oui, comment qualifieriez vous les résultats de votre recherche sur nos sites internet ?</span>] as entete_5
                                                  F17,
                                                  [<span style="color: #333399; font-size: 14pt; font-family: arial,helvetica,sans-serif;">Comment qualifieriez vous notre service clients sur les critères suivants ?</span>] as entete_6
                                                  F19,
                                                  F20,
                                                  F21,
                                                  F22,
                                                  F23,
                                                  [<span style="color: #333399; font-size: 14pt; font-family: arial,helvetica,sans-serif;">Quel est est votre niveau de satisfaction globale ?</span>] as entete_7,
                                                  [<span style="color: #333399; font-size: 14pt;"><span style="font-family: arial,helvetica,sans-serif;">Comment qualifieriez-vous l'évolution de la qualité de notre service clients ?</span><br /></span>] as entete_8,
                                                  [<span style="color: #333399; font-size: 14pt; font-family: arial,helvetica,sans-serif;">Si vous avez des commentaires ou des suggestions d’amélioration concernant notre service clients, merci de les renseigner ci-dessous :<br /></span>] as entete_9,
                                                  [<span style="color: #333399; font-size: 14pt;"><span style="font-family: arial,helvetica,sans-serif;">(Facultatif) - Si vous souhaitez être contacté par nos équipes, veuillez renseigner vos coordonnées et préciser vos attentes ci-dessous :</span> <br /></span>] as entete_10
                                                  F28,
                                                  F29,
                                                  F30,
                                                  F31,
                                                  F32
                                                  FROM
                                                  [Sheet_1_actu.xls]
                                                  (
                                                  biff, embedded labels, table is Sheet1$);


                                                  // Je récupère cette table (en mémoire dans QV) pour appliquer mes conditions.
                                                  // Note qu'il est préférable de travailler avec une table temporaire;

                                                  tmp2:

                                                  load  'selection 1' as traitement1,
                                                  [ID personne interrogée],
                                                  [ID collecteur],
                                                  [Date de début],
                                                  [Date de fin],
                                                  [Adresse IP],
                                                  [Adresse e-mail],
                                                  Prénom,
                                                  Nom,
                                                  [Données personnalisées],

                                                  replace(entete_1,'</strong>','') as  entete_1,
                                                  F11,
                                                  replace(entete_2,'</strong>','') as  entete_2,
                                                  replace(entete_3,'</strong>','') as  entete_3,
                                                  F14,
                                                  replace(entete_4,'</strong>','') as  entete_4
                                                  replace(entete_5,'</strong>','') as  entete_5,
                                                  F17,
                                                  replace(entete_6,'</strong>','') as  entete_6
                                                  F19,
                                                  F20,
                                                  F21,
                                                  F22,
                                                  F23,
                                                  replace(entete_7,'</strong>','') as  entete_7,
                                                  replace(entete_8,'</strong>','') as  entete_8
                                                  replace(entete_9,'</strong>','') as  entete_9
                                                  replace(entete_10,'</strong>','') as  entete_10
                                                  F28,
                                                  F29,
                                                  F30,
                                                  F31,
                                                  F32
                                                  resident tmp1;


                                                  tmp3:

                                                  load  'selection 2' as traitement2,
                                                  [ID personne interrogée],
                                                  [ID collecteur],
                                                  [Date de début],
                                                  [Date de fin],
                                                  [Adresse IP],
                                                  [Adresse e-mail],
                                                  Prénom,
                                                  Nom,
                                                  [Données personnalisées],

                                                  replace(entete_1,'<strong>','') as  entete_1,
                                                  F11,
                                                  replace(entete_2,'<strong>','') as  entete_2,
                                                  replace(entete_3,'<strong>','') as  entete_3,
                                                  F14,
                                                  replace(entete_4,'<strong>','') as  entete_4
                                                  replace(entete_5,'<strong>','') as  entete_5,
                                                  F17,
                                                  replace(entete_6,'<strong>','') as  entete_6
                                                  F19,
                                                  F20,
                                                  F21,
                                                  F22,
                                                  F23,
                                                  replace(entete_7,'<strong>','') as  entete_7,
                                                  replace(entete_8,'<strong>','') as  entete_8
                                                  replace(entete_9,'<strong>','') as  entete_9
                                                  replace(entete_10,'<strong>','') as  entete_10
                                                  F28,
                                                  F29,
                                                  F30,
                                                  F31,
                                                  F32
                                                  resident tmp2;


                                                  resultat:

                                                  load  'selection 3' as traitement3,
                                                  [ID personne interrogée],
                                                  [ID collecteur],
                                                  [Date de début],
                                                  [Date de fin],
                                                  [Adresse IP],
                                                  [Adresse e-mail],
                                                  Prénom,
                                                  Nom,
                                                  [Données personnalisées],

                                                  replace(entete_1,'<br />','') as  entete_1,
                                                  F11,
                                                  replace(entete_2,'<br />','') as  entete_2,
                                                  replace(entete_3,'<br />','') as  entete_3,
                                                  F14,
                                                  replace(entete_4,'<br />','') as  entete_4
                                                  replace(entete_5,'<br />','') as  entete_5,
                                                  F17,
                                                  replace(entete_6,'<br />','') as  entete_6
                                                  F19,
                                                  F20,
                                                  F21,
                                                  F22,
                                                  F23,
                                                  replace(entete_7,'<br />','') as  entete_7,
                                                  replace(entete_8,'<br />','') as  entete_8
                                                  replace(entete_9,'<br />','') as  entete_9
                                                  replace(entete_10,'<br />','') as  entete_10
                                                  F28,
                                                  F29,
                                                  F30,
                                                  F31,
                                                  F32
                                                  resident tmp3;



                                                  // Je suppime les tables temporaires.

                                                  drop  table tmp1;
                                                  drop  table tmp2;
                                                  drop  table tmp3;

                                                    • Re: Modifier contenu champ
                                                      Didier DELANSAY

                                                      Je te joins la copie d'écran également :

                                                       

                                                      • Re: Modifier contenu champ
                                                        Maurice ludo

                                                        Merci Didier,

                                                        pour l’entête 8 on toujours strong à la fin,

                                                        pour l'entete 6 c'est une question générale puis on a 6 sous question

                                                        a- Accessibilité des coordonnées du service clients (entete6)

                                                        b - <strong>Délai de mise en relation avec nos téléconseillers</strong>(F19)

                                                        c - <strong>Expérience client</strong> <em>(courtoisie, professionnalisme de votre interlocuteur…)</em>(F20)

                                                        d - <strong>Qualité de la réponse</strong>(F21)

                                                        e - <strong>Informations sur le suivi du traitement de la demande</strong>(F22)

                                                        f - <strong>Délai de traitement de la demande</strong>(F23)

                                                        pour chaque sous question on a plusieurs réponse c'est les valeurs dont j'ai besoin pour faire mes analyses,

                                                        ma question comment je peux rendre les sous questions a,b,c,d,e,f des entetes pareil que ( 1,2,3...)

                                                        Merci

                                                          • Re: Modifier contenu champ
                                                            Didier DELANSAY

                                                            Je ne sais pas si tu a pris mon QV et mon script, car j'avais oublié de modifier quelques lignes et surtout oublié de la sauvegarder mon QV avant l'envoi.

                                                             

                                                            Je te le renvoi, mais sache que le script doit être OK.

                                                            (Regarde les / et les \ ainsi que les espaces sur "br")

                                                            Vois également la copie d'écran.

                                                             

                                                            Didier

                                                            • Re: Modifier contenu champ
                                                              Didier DELANSAY

                                                              Sur l'entête 6, tu dis qu'il y a 6 sous-questions: Ce n'est plus du SQL mais du XML;

                                                               

                                                              A mon avis, soit tu traites ton fichier par macro (VB sur Excel ou QV), soit tu décompose ton fichier.

                                                               

                                                              Sur QV, il me semble qu'il y a une possibilité de traité en XML, mais là je ne pourrai pas t'aider car  je sais uniquement générer des fichier XML par SQL Oracle mais pas par QV.

                                                               

                                                              Didier

                                                              • Re: Modifier contenu champ
                                                                Didier DELANSAY

                                                                Maurice,

                                                                 

                                                                Sauf erreur de ma part, le fichier que tu as dû transformer en xls n'est pas compatible XML

                                                                 

                                                                J'ai fais plusieurs tests; Le plus simple : transformer son extension en xlsx (Excel Version 2010)

                                                    • Re: Modifier contenu champ
                                                      Didier DELANSAY

                                                      Bonjour Maurice,

                                                       

                                                      En fait, ton fichier peux être récupérer en XML via un enregistrer sous xml ou xlsx.

                                                      Mais cela ne change rien à ton problème....

                                                       

                                                       

                                                      Didier