Problema extraño al insertar texto.

Iniciado por Edu, 21 Abril 2011, 05:04 AM

0 Miembros y 1 Visitante están viendo este tema.

Edu

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:

Código (csharp) [Seleccionar]

  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

Edu