Как сделать много символьный разделитель в Coldfusion для cfloop?

У меня есть Строковая переменная, которая имеет динамический вводимый пользователем текст

EX:- <cfset setPars="SPTO_DATE('04/11/2009 11:59:59 PM', 'MM/DD/YYYY HH:MI:SS AM')SP(L','MN)>'

Теперь, Если я использую SP как разделитель

в CFloop как ниже

    <cfloop index="i" from="1" To="#ListLen(setPars,'SP')#">
       <br/> #ListGetAT(setPars,i,'SP')# 
    </cfloop>

Я становлюсь произведенным Как

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

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

Но я хочу как

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

(L','MN)

Есть ли какой-либо путь в Coldfusion, чтобы сделать это?

Спасибо

5
задан CFUser 27 January 2010 в 15:20
поделиться

2 ответа

Не существует прямого способа сделать это. Тем не менее, есть пара разных способов достичь ее.

То, что я обычно делаю, это заменить разделитель MulticArarArce с одним символом. Я обычно использую колокол (Chr (7)), потому что он не типируется на стандартной клавиатуре.

<cfset list = replace(setPars, 'SP', '#chr(7)#', 'all')>

Затем вы можете включить в список:

<cfloop list="#list#" index="i" delimiters="#chr(7)#">
    <br />#i#
</cfloop>

обратите внимание на более простой оператор петли. Это сэкономит вам некоторую работу.

11
ответ дан 18 December 2019 в 14:46
поделиться

Не используя встроенные функции List*(), нет. Все они рассматривают аргумент разделителя как набор символов, а не как литературную строку. Но вы, конечно, можете использовать обычные строковые функции (например, Find(), Mid() и т.д.) для самостоятельного разбора.

Также, для удобства, цикл можно записать более компактно (если вас не волнуют числовые индексы каждого элемента списка) как:

<cfloop index="i" list="#setPars#">
   <br/> #i#
</cfloop>
0
ответ дан 18 December 2019 в 14:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: