coldfusion - String manipulation Code Changes -
the following code creates codes issues in following
<cfset str = "previoushistory-diagnosis= 085.2 : cutaneous leshmaniasis, asian desert**controlled-diagnosis= 085.2 : asian desert cutaneous leishmaniasis**controlled-diagnosis= 153.2 : cancer of colon, descending colon**active-diagnosis= 209.15 : mal carcinoid desc colon**151.9 : stomach cancer= uncontrolled"> <cfset string1 = ''> <cfset generatelst = ''> <cfset generatelst = ''> <cfset generatetextlst = ''> <cfset generatestr = ''> <cfloop list="#str#" index="elem" delimiters="**"> <cfset string1 = listappend(string1, elem,'~')> <cfset delimis = ":"> <cfloop list="#string1#" index="k" delimiters="~"> <cfset getstring = gettoken(k,1,'#delimis#')> <cfset generatestr = listremoveduplicates(listappend(generatestr,getstring))> <cfset getid = gettoken(k,2,'#delimis#')> <cfset generatelst = listremoveduplicates(listappend(generatelst,getid))> <cfset gettext = gettoken(k,3,'#delimis#')> <cfset generatetextlst = listremoveduplicates(listappend(generatetextlst,gettext))> </cfloop> </cfloop> <cfdump var="#str#"><br /><br> <cfdump var="#generatestr#"><br /><br /> <cfdump var="#generatelst#"><br /><br /> <cfdump var="#generatetextlst#">
generated outputs
for generatestr
previoushistory-diagnosis= 085.2 ,controlled-diagnosis= 085.2 ,controlled-diagnosis= 153.2 ,active-diagnosis= 209.15 ,151.9
for generatelst
cutaneous leshmaniasis, asian desert, asian desert cutaneous leishmaniasis, cancer of colon, descending colon, mal carcinoid desc colon, stomach cancer= uncontrolled
for generatetextlst
[empty string]
now problem lies in
<cfdump var="#generatestr#"><br /><br /> <cfdump var="#generatelst#"><br /><br />
now value generatestr coming as:
previoushistory-diagnosis= 085.2 ,controlled-diagnosis= 085.2 ,controlled-diagnosis= 153.2 ,active-diagnosis= 209.15 ,151.9
can change this
085.2 ,085.2 ,153.2 ,209.15 ,151.9
and use removed values append second list relevant this
cutaneous leshmaniasis, asian desert*=previoushistory-diagnosis*, asian desert cutaneous leishmaniasis*=controlled-diagnosis*, cancer of colon, descending colon*=controlled-diagnosis*, mal carcinoid desc colon*=active-diagnosis*, stomach cancer= uncontrolled
i confused how play couple of list elements make happen above
any guidance
this should enough started. modified cfloop
this:
<cfloop list="#string1#" index="k" delimiters="~"> <cfset getstring = gettoken(k,1,'#delimis#')> <cfset gettext = trim(gettoken(getstring,1,'='))> <!--- returns text example previoushistory-diagnosis ---> <cfset getvalue = trim(gettoken(getstring,2,'='))> <!--- returns value example 085.2 ---> <cfset generatestr = listremoveduplicates(listappend(generatestr,getvalue))> <cfset getid = gettoken(k,2,'#delimis#')> <cfset newtext = getid & "=" & gettext> <!--- concatenates 2 strings = inbetween ---> <cfset generatelst = listremoveduplicates(listappend(generatelst,newtext))> <cfset gettext = gettoken(k,3,'#delimis#')> <cfset generatetextlst = listremoveduplicates(listappend(generatetextlst,gettext))> </cfloop>
which outputs generatestr
as:
085.2,153.2,209.15,
and generatelst
as:
cutaneous leshmaniasis, asian desert=previoushistory-diagnosis, cutaneous leshmaniasis, asian desert cutaneous leishmaniasis=controlled-diagnosis, cancer of colon, descending colon=controlled-diagnosis, mal carcinoid desc colon=active-diagnosis, cutaneous leshmaniasis, stomach cancer= uncontrolled=151.9
notice there empty value @ end of generatestr
list. because last value in str
list not fit format of others. value 151.9
@ beginning instead of after =
character.
this in turn throws off generatelst
list well. makes last value become stomach cancer= uncontrolled=151.9
, assume not want.
so need play around bit more finalize need. these kinds of problems run when attempting parse strings of data not consistent.
Comments
Post a Comment