Artículo Jose-Tomas Salvador · ene 16 1m read

Encontrad valores desde texto y mostradlos

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 VariablesSet values = ""Set start = 1While 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:

Write !,##class(Test.Utility.FunctionSet).ExtractValues("Some random text VALUE=12345; some other VALUE=2345; more text VALUE=345678;","VALUE=",";")

12345 2345 345678