Pregunta
· 19 abr, 2023

Remplazar texto por arguments

Hola a todos,

Me pregunto si existe algún comando o método para remplazar un texto usando parámetros.

En C#, uso la propiedad Format

var text = string.format("My name is {0} and I'm {1} years","Kurro","18")
// The value of text will be "My name is Kurro and I'm 18 years"

He intentado este código... pero solo funciona para los parámetros específicos.

set text = "My name is {0}, and I'm {1} years"
write $Replace($Replace(text,"{0}","Kurro"),"{1}",18)

¿Es posible hacer algo para más argumentos?, quiero decir, usarlo para un indeterminado número de argumentos

 

Saludos

Product version: IRIS 2021.1
$ZV: IRIS for Windows (x86-64) 2021.1 (Build 215U) Wed Jun 9 2021 09:39:22 EDT
Comentarios (1)1
Inicie sesión o regístrese para continuar

Voy a poner la respuesta que me han dado en el grupo general y que es una solución muy buena. Muchas gracias @Julian Matthews


Hola Kurro.


No estoy seguro de una función incorporada para esto, pero si quisieras tener la tuya propia:

Class Demo.FunctionSets.Example
{

ClassMethod Format(InputString As %String, Params... As %String) As %String
{
	Set OutputString = InputString
	For i = 1 : 1 : $GET(Params, 0){
		Set OutputString = $Replace(OutputString,"{"_i_"}",Params(i))
	}
	
	Quit OutputString
}

}

Y entonces:

Write ##Class(Demo.FunctionSets.example).Format("My name is {1} and I'm {2} years","Kurro","18")
My name is Kurro and I'm 18 years

Podeis ver la respuesta original en el siguiente enlace