begin process at 2010 02 09 14:42:05
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive ColdFusion

 > 

Archives

 > 

ColdFusion Studio

 > 

ListToArray: Effacer les elements doubles


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

ListToArray: Effacer les elements doubles

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ée 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 lier liste déroulante [ par benji54190 ] bonjour a tous, j'ai un souci avec mes listes déroulantes, <cfquery datasource="authentification" name="projet2"&gt accents avec coldfusion8 [ par benji54190 ] Bonjour a tous, j'ai un souci avec des accents dans la bdd,exemple: Algérie --> Alg,rieAlgérie appartient a une table pays, je dois faire une liste dé Checkboxs pour selection dans une liste [ par jeanmarieb ] Bonjour, J'ai toujours eu du mal avec les Checkboxs [^^happy17] Dans une liste, je voudrais pouvoir selectionner avec des Checkboxs plusieurs élémen


Nos sponsors


Appels d'offres

Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,312 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales