Ayuda, corregir un codigo :S

Iniciado por Edu, 20 Marzo 2011, 01:02 AM

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

Edu

Bueno la idea es q me salga a mi solo, pero no me sale :/

Código (csharp) [Seleccionar]

string Miembro1 = "2x-5(65x-8(3-8+5x)-9)+3"
string[] a = new string[10];
         int h = 0;
           string s;
           bool sigue = false;

           if (Miembro1.Contains("("))
           {
               for (int i = 1; i < Miembro1.Length; i++)
               {
                   try
                   {
                       if (Miembro1.IndexOf("(", i, i) != -1)
                       {
                           

                           s = Miembro1.Substring(Miembro1.IndexOf("(", i));
                           for (int k = 1; k < s.Length; k++)
                           {
                               

                               if (s.Substring(1, k).EndsWith(")"))
                               {
                                   if (sigue == false) { h++; break; }
                                   else { sigue = true; }
                               }

                               if (s.Substring(1, k).EndsWith("("))
                               {

                                   sigue = true;
                               }
                               

                               a[h] = s.Substring(1, k);
                               
                           }
                           
                       }
                   }
                   catch { }
                   
               }
           }

  foreach (string r in a)
     MessageBox.Show(r);



Quiero q en este caso por ejemplo salgan 2 mensajes, uno q diga "65x-8(3-8+5x)-9" y el otro q diga "3-8+5x"

Si me entienden lo q quiero hacer se daran cuenta q quiero q sirva para otros por ejemplo "2x4(-6+9)" y ahi largaria solo un mensaje..
Y si tiene uno como "6x-8+3(48x-8(6-2(1+7)+2)-8)" q haga lo mismo..

Pero creo q si arreglan mi codigo para q ande con la ecuacion q pido al principio, ya andara para esos otros, asique si pudieran arreglarlo les agradeceria mucho!

pd: Ven q use el Try, esq me daba un error, talvez lo pueden hacer q funcione sin ese error no se :S

Xephiro

Trata descomponiendo tu ecuacion con el metodo Split, a ver si con eso se te aclara un poco mas la forma de resolver tu problema.

Edu

Esqe para otras cosas si use el split(), solo q en este caso se me complica, ya q tengo "(" y ")" y seria un desorden total

Xephiro

Cita de: XXX-ZERO-XXX en 20 Marzo 2011, 14:48 PM
Esqe para otras cosas si use el split(), solo q en este caso se me complica, ya q tengo "(" y ")" y seria un desorden total

Yo creo que haces un seguimiento en forma mental de lo que va pasando no tendrías que desordenare tanto.

primero realizas un Split de los "("

y luego los datos que se separaron con el primer Split los divides todos con un segundo Split para los ")" y vas analizando de adelante hacia atrás los datos con ) y de atras hacia adelante los datos con (, creo que si pules un poco mas esa idea tendría que resultar.

Edu

Ja no se, me entrevero y no funciona xD