Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : ListToArray: Effacer les elements doubles [ Archives / ColdFusion Studio ] (fionalabelle)

mercredi 10 mai 2006 à 09:57:52 | ListToArray: Effacer les elements doubles

fionalabelle

Bonjour à tous,

J’ai une Liste que j’aimerai trier. C-a-d eviter qu’un elemen apparaisse plus d’une fois dans la liste.

Quelqu’un pourrait-il me dire comment le faire ? Quelle function utiliser ? Je n’arrive pas à trouver une reponse dans google.

Merci

MaListe = 08.05.2006,08.05.2006,08.05.2006,09.05.2006,09.05.2006,10.05.2006,11.05.2006,12.05.2006

 

J’aimerai obetenir a la fin:

MaNuvelleListe = 08.05.2006, 09.05.2006,10.05.2006,11.05.2006,12.05.2006

 

Merci pour votre aide

mercredi 10 mai 2006 à 11:32:02 | Re : ListToArray: Effacer les elements doubles

nickadele

Membre Club Administrateur CodeS-SourceS
Petite réflexion, si je suis bien toutes tes demandes, ta liste provient-elle bien de données venant de ta base de données... Car dans ce cas, pourquoi ne pas faire une requète avec un Goupe By qui ne reprendra qu'une seule fois chaque date ? Nickadele

mercredi 10 mai 2006 à 12:02:11 | Re : ListToArray: Effacer les elements doubles

nickadele

Membre Club Administrateur CodeS-SourceS
J'ai pas su tester mais à mon avis ça devrait fonctionner :

mercredi 10 mai 2006 à 13:38:04 | Re : ListToArray: Effacer les elements doubles

syndrael

Euh.. Alors je dirais sans me formaliser sur la syntaxe..

cfset tmpList = ''
cfloop index=i from=0 to=#listlen(maListe)#   {
    cfif(NOT listfind(listgetat(maListe,i),tmpList)) tmpList &= listgetat(maListe,i) & ','
}
cfif listLen(tmpList) tmpList = left(tmpList,len(tmpList)-1) <!--- il faut oter la dernière virgule --->
cfset aValue= ListToArray(tmpList)

et voila !!
S.

mercredi 10 mai 2006 à 15:20:32 | Re : ListToArray: Effacer les elements doubles

fionalabelle

Salut Nickadele,

 

Oui ma liste provient bien des données venant de ma base de données. 
 " ...... Car dans ce cas, pourquoi ne pas faire une requète avec un Goupe By qui ne reprendra qu'une seule fois chaque date ? "

 

Une une requète avec un Goupe By ne m’aide pas trop, car dans ma DB il peut avoir un jour plusieurs selon les heures de rdv.

Exemple(données de ma DB) :

Date                Heure              RDV

10.05.2006            10 :00              Reunion

10.05.2006            11 :00              Reunion1

10.05.2006            12 :00              Reunion2

10.05.2006            12:30               Reunion3

11.05.2006            12:30               Reunion3
12.05.2006            12:30               Reunion3

12.05.2006            13:30               Reunion3


Dans une requète je lis la date, Heure, RDV where date = sysdate. Elle m’affiche tous ce donc j’ai besoin.

 

Mais dans la liste, j’aimerai que qu’une date(10.05.2006) soit presente seulemment 1 fois.

 

Merci

 

Fiona


mercredi 10 mai 2006 à 15:22:34 | Re : ListToArray: Effacer les elements doubles

syndrael

Je suis assez réservé pour le group By à moins de faire une requete dédiée avec un distinct dans le select. Pour ma part je pense que mon ptit algo du dessus peut faire l'affaire, lorsque tu l'auras bien mis en forme en langage Cold fusion.
S.


jeudi 11 mai 2006 à 05:59:57 | Re : ListToArray: Effacer les elements doubles

lfontaine

Salut,

Si ta requete est triee par Date, un simple cfoutput query="marequette" group="Date" devrait faire l'affaire pour construire une liste sans doublons.

Laurent


jeudi 11 mai 2006 à 14:52:45 | Re : ListToArray: Effacer les elements doubles

fionalabelle

Salut à vous,

merci pour vos suggestion, mais je n'arrive pas à toruver une Solution.
J'ai aussi essyé le code propsé par Syndrael et je n'ai pas de bonne solution.

Voici le code que j'ai pu changer en coldFusion

<cfset tmpList = ''>
<cfloop index="i" from="1" to="#listlen(meineListe)#">  
    <cfif (NOT listfind(listgetat(meineListe,i),tmpList))>
  tmpList &= listgetat(meineListe,i) & ','
 </cfif>

<cfif listLen(tmpList)>tmpList = left(tmpList,len(tmpList)-1) </cfif> <!--- il faut oter la dernière virgule --->
<cfset aValue= ListToArray(tmpList)>
</cfloop>


jeudi 11 mai 2006 à 15:01:58 | Re : ListToArray: Effacer les elements doubles

syndrael

Ton </cfloop> doit se faire après ton premier </cfif>..
Autre chose <cfset tmpList &= listgetat(meineListe,i) & ','>
Donc il est normal que tu n'as po la bonne solution puisque celle ke j'ai fournie qui est somme toute bonne dans l'idée ne l'est pas dans la syntaxe. Il faut la mettre à la syntaxe Cold fusion.
La dernière remarque de lFontaine est très judicieuse. Tu peux aussi exploiter cette voie si tu te perds avec la mienne. C'est juste k'étant fainéant, moins je tape sur le clavier, mieux je me porte..
S.

jeudi 11 mai 2006 à 16:23:57 | Re : ListToArray: Effacer les elements doubles

fionalabelle

Réponse acceptée !

Salut à vous,

voilà la solution à mon problem. Ce code fonctionne tres bien.

Merci pour votre aide.
<h3> element de ma nouvelle Liste</h3>

<cfset maNouvListe = ""><!--- ma nouvelle Liste sans Double --->

<cfloop list="#maListe#" index="listIdx" delimiters=","> <!--- une fois sur l’ancienne Liste avec Doublets ---> 

  <cfif NOT ListFind(maNouvListe,listIdx)><!--- si la valeur n’est pas encore dans la liste, il faut l’introduire ---> 

   <cfset maNouvListe =ListAppend(maNouvListe,listIdx)>

  </cfif>

</cfloop>

<cfoutput># maNouvListe #</cfoutput>




Cette discussion est classé dans : liste, effacer, elements, listtoarray, doubles


Répondre à ce message

Sujets en rapport avec ce message

Resultat d’une requete dans un ListToArray [ par fionalabelle ] Salut à vous,</ ListContains avec un String qui varie [ par fionalabelle ] Salut à vous, <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt" Cases à cocher dynamiques [ par smathios ] Bonjour,j'ai besoin de construire la page suivante : - formulaire avec nom/prénom/etc... d'un enfant que l'on veut inscrire à plusieurs activités.- li liste déroulante [ par pancratee ] bonjour à tous. Je suis novis en développement. J'ai crée une base de données acces, des formulaires html. J'ai un serveur coldfusion. Je souhaite rem Trier zone de liste [ par SElKettani ] <link rel="Fi Comparaison deux listes de Valeurs [ par Goblinx ] Bonjour à tous.J'ai une table qui mémorise une liste de mots pour des candidats et des entreprises.table:Id_Record(Clé primaire)Id_Candidat(Clé étrang Liste de bases sur SQL Server [ par Syndrael ] Bonjour,Sur SQL Server, lorsque je demande la liste des bases déclarées l'interface 'mouline' qqs minutes avant de rendre un résultat nul alors que je Liste des personnes Online... [ par Bms ] Salut à tout le monde,Je voudrais savoir comment faire un script pour connaître le nombre de personnes qui sont conncetées sur mon site on line.Merci [orange][orange] HELP-ME PLEASE [/orange][/orange]Help-me Access veut ma mort!!! [ par starquek ] Bonjour a tous, voila je dois mettre en ligne une liste d'accessoires ou de produits de mon entreprise et je voudrais savoir comment créer cette liste


Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,234 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.