Ya hice un post pero quedo en el olvido, ahora yo lo habia terminado y andaba perfectamente pero ahora no se q mier**.
Yo quiero insertar un simbolo "*" y al lado una variable q ira aumentando.
Lo siento pero es complicado q explique todo todo, lo q pido es que miren el codigo y si entienden q quiero hacer que me digan como hacerlo de otra forma:
public static void ShowNivel(ref string texto)
{
int nivel = 1;
MessageBox.Show("Hi");
for (int i = 0; i < texto.Length; i++)
{
if (texto[i].ToString() == "(")
{
texto = texto.Substring(0, i) + "*" + texto.Substring(i);
i++;
}
}
MessageBox.Show("Sigue");
for (int i = 0; i < texto.Length; i++)
{
if (texto[i].ToString() == "(")
{
texto = texto.Substring(0, i) + nivel.ToString() + texto.Substring(i);
i++;
nivel++;
}
}
MessageBox.Show("Chau");
for (int i = 1; i < texto.Length; i++)
{
if (texto[i - 1].ToString() == ")")
{
if ((texto[i].ToString() != "+") && (texto[i].ToString() != "-") &&
(texto[i].ToString() != ")") && (texto[i].ToString() != "*")
&& (texto[i].ToString() != "="))
{
texto = texto.Substring(0, i) + "$" + texto.Substring(i);
i++;
}
}
}
}
Puse unos MessageBox para ver donde estaba el error y la cosa es q me aparece el "Hi" y el "Sigue" pero no llega al "Chau" entonces pienso q es un bucle infinito y no entiendo bien porque :S ya q consideren que funciona para el string:
(8x)(-4x)+6(3+x)-(4x+8-3(+3+4(-x(8+5)4))2+10)
Pero no funciona para este otro:
(8x)(-4x)+6(3+x)-(4x+8-3(+3+4(-x(8+5)4))2+10(5)4(6)(7)(89)(90))
ni para:
(8x)(-4x)+6(3+x)-(4x+8-3(+3+4(-x(8+5)4))2+10(5)4(6)(7)(89)(90+3-7)2(+3+4(-x(8+5)4))+10)
No tiene q ver por la longitud de la cadena sino por los parentesis, pero no se porque no funciona, alguna idea o como cambio de forma ese codigo? :S
Ya lo solucione, gracias!