7 votes

Comment créer un délimiteur multicolonnes dans Coldfusion pour cfloop ?

J'ai une variable de type String qui contient du texte dynamique saisi par l'utilisateur

EX:-`

ListGetAt(setPars,i,'SP')#`

Je reçois la sortie comme

TO_DATE('04/11/2009 11:59:59 

M', 'MM/DD/YYYY HH:MI: 

Mais je veux comme

TO_DATE('04/11/2009 11:59:59 PM', 'MM/DD/YYYY HH:MI:SS AM')

(L','MN)

Y a-t-il un moyen en Coldfusion de faire cela?

Merci

13voto

Ben Doom Points 6581

Il n'y a pas de moyen direct de le faire. Cependant, il existe quelques façons différentes de le réaliser.

Ce que je fais habituellement, c'est remplacer le délimiteur multicaractère par un caractère unique. J'utilise généralement la cloche (chr(7)) car elle n'est pas tapeable sur un clavier standard.

Ensuite, vous pouvez parcourir la liste :

    #i#

Remarquez l'opérateur de boucle plus simple. Cela vous fera gagner du temps.

1voto

DavidLiu Points 505

Utilisez la fonction .split() à la place.

Par exemple, vous pouvez diviser une chaîne de caractères par un délimiteur de chaîne comme ceci :

 "string&^&string&^&string".split("&^&")

0voto

Sixten Otto Points 10267

Ne pas utiliser les fonctions intégrées List*(), non. Ils considèrent tous l'argument du délimiteur comme un ensemble de caractères, plutôt qu'une chaîne littérale. Mais vous pouvez bien sûr utiliser les fonctions régulières sur les chaînes (par exemple Find(), Mid(), etc.) pour effectuer l'analyse vous-même.

Aussi, pour ce que ça vaut, votre boucle peut être écrite de manière plus concise (tant que vous ne vous souciez pas des indices numériques de chaque élément de la liste) comme suit :

    #i#

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X