go to post Julius Kavay · Oct 30, 2017 I think, your best bet is:write $zstrip($zstrip(text,"*c"),"<=>w")because you want to remoe ALL (i.e.: *) control chars but only SOME (i.e.: <=>) whitespaces.You could try something like:set chars=$c(0,1,2,3,....31, 32 /* blank */, ...<maybe other control chars, above 128>)write $tr(text,chars)hth
go to post Julius Kavay · Sep 5, 2017 Class your.class { Property Colors As list Of %String; ClassMethod toJson(list) As %String [ SqlProc ] { s json="" f i=1:1:$ll(list) { s:i>1 json=json_"," s item=$lg(list,i) if '$ld(list,i) { s json=json_"null" } elseif item="" { s json=json_"""""" } elseif $lv(item) { s json=json_..toJson(item) } elseif $num(item,".")=item { s json=json_$fn(item,"N") } else { f c="\","/","""",$c(8),$c(9),$c(10),$c(12),$c(13) s item=$replace(item,c,"\"_$tr(c,$c(8,9,10,12,13),"btnfr")) f q:'$locate(item,"[:cntrl:]",0,j,v) s $e(item,j-1)="\u"_$e($zh($a(v)+65536),2,5) s json=json_""""_item_"""" } } q "["_json_"]" } } select your.class_toJson(Colors) from your.class gives you the expected result . If you prefer a direct use of globals, then use write ##class(your.class).toJson($lg(^your.global(theOID),theSlotNumber))
go to post Julius Kavay · Aug 28, 2017 Cache dies not like an object property as a left side argument,but you can solve the problem much simpler:set context.NewID=$tr($j(context.PatientID,10)," ",0) By the way, if your solution would work, the result would be longer then 10 charsfor example, if context.PatientID=123 then youwould get: "000000123000"instead of: "0000000123"Regards,Julius
go to post Julius Kavay · Aug 28, 2017 my quick test says there are two chars, CR and LF, on an AIX and on Ubuntu USER>s str=##class(%GlobalCharacterStream).%New() USER>d str.WriteLine("Test") USER>d str.Rewind() USER>zzdump str.Read(100) 0000: 54 65 73 74 0D 0A Test.. USER> USER>w $zv Cache for UNIX (IBM AIX for System Power System-64) 2017.1 (Build 792U) Mon Mar 20 2017 19:19:37 EDT USER> ----------------- USER>s str=##class(%GlobalCharacterStream).%New() USER>d str.WriteLine("Test") USER>d str.Rewind() USER>zzdump str.Read(100) 0000: 54 65 73 74 0D 0A Test.. USER> USER>w $zv Cache for UNIX (Ubuntu Server LTS for x86-64) 2017.1 (Build 792U) Mon Mar 20 2017 19:22:31 EDT USER> Maybe, your problem has nothing to do with Cache? Regards, Julius