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