Foros del Web » Programación para mayores de 30 ;) » .NET »

En una cadena de tipo "format", saber la poscion de un elmento.

Estas en el tema de En una cadena de tipo "format", saber la poscion de un elmento. en el foro de .NET en Foros del Web. Buenas... Creo que no sé si me expliqué bien con el título, por que es algo compliado de explicar en un título, pero bueno... les ...
  #1 (permalink)  
Antiguo 13/05/2014, 06:51
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 11 meses
Puntos: 7
En una cadena de tipo "format", saber la poscion de un elmento.

Buenas...

Creo que no sé si me expliqué bien con el título, por que es algo compliado de explicar en un título, pero bueno... les dejo mi problema, a ver si alguien puede ayudarme...

En la siguiente cadena (los ordenes podrían ser disintos):
"{nx}{ny}{nz}{n}{y}{z}{u}{v}"

Me gustaría conseguir, en base al número de elementos {xx} la posicion de uno de ellos en concreto.

Es decir, para {n} la posicion sería 3.

Para {nx} la posicion sería 0

Para {z} la posicion sería 5

etc...

¿Alguien sabe como resolver este tema?, ¿Es posible hacerlo?

De antemano... gracias por molestaros en leer el post !!
__________________
Charlie.
  #2 (permalink)  
Antiguo 13/05/2014, 14:53
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: En una cadena de tipo "format", saber la poscion de un elmento.

Hola,

Puedes hacer algo así, usando expresiones regulares:

Código C#:
Ver original
  1. string text = "{nx}{ny}{nz}{n}{y}{z}{u}{v}";
  2. string valueToSearch = "z";
  3.  
  4. MatchCollection matches = Regex.Matches(text, @"\{([a-z]+)\}+");
  5. int index = matches.OfType<Match>().ToList().FindIndex(x => x.Groups[1].Value == valueToSearch);

Habría que pulirlo un poco, pero funciona. También puedes hacerlo manualmente usando las funciones para cadenas (Substring, IndexOf, etc.).

Un saludo.
  #3 (permalink)  
Antiguo 20/05/2014, 06:50
 
Fecha de Ingreso: mayo-2014
Mensajes: 9
Antigüedad: 10 años
Puntos: 0
Respuesta: En una cadena de tipo "format", saber la poscion de un elmento.

Puedes usar indexOf.

int pos = texto.IndexOf(cadena,pos_ini);

texto = El string en el que quieres buscar la cadena
cadena = la cadena a buscar
pos_ini = la posición desde la que debe empezar a buscar.

No sé si es ésto lo que vas buscando pero sería la forma más sencilla.
Un saludo.

Etiquetas: c#
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:41.