La utilidad devuelve los valores deseados del texto y muestra múltiples valores si existen, basándose en una cadena de inicio y una de fin.
Class Test.Utility.FunctionSet Extends %RegisteredObject { /// W !,##class(Test.Utility.FunctionSet).ExtractValues("Some random text VALUE=12345; some other VALUE=2345; more text VALUE=345678;","VALUE=",";") ClassMethod ExtractValues(text As %String, startStr As %String, endStr As %String) As %String { //Initialize Variables Set values = "" Set start = 1 While start '= 0 { Set start = $Find(text, startStr, start) If start = 0 { Quit} Set end = $Find(text, endStr, start) If end = 0 { Quit} Set value = $Extract(text, start, end-$Length(endStr)-1) IF values '= "" { Set values = values _" "_value } Else { Set values = value } Set start = end } Quit values } }
Output o salida:
12345 2345 345678