CLR: .Net / Mono / Boo / Otros CLR > C#

 hacer una busqueda de una palabra en un archivo txt externo

<< < (2/2)

eltruhanero:
Como tienes pensado realizarlo? Para mi es mas facil tirarte un codigo y listo pero no es la idea...

Esta bueno que esto sea interactivo y el foro ayude a pensar...y no sea un simple repositorio de codigo muerto..

Q pseudocodigo has pensado?

Saludos, Daniel.

computadora:
lo que tengo planeado es esto:
en un windows application tener:
+ 1 boton (para darle clic y que busque )
+ un textbox (donde se pondra la palabra a buscar)
+ un listbox donde se escriba si la palabra fue encontrada o no y cuantas veces la palabra "agua" esta antes de ella

para esto he escrito esto:

        int contador=0;
        bool acabar = false;


        private void button1_Click(object sender, EventArgs e)
        {

            string palabraBuscada = textBox1.Text;

            FileStream fs = new FileStream(@"C:...documento", FileMode.Open);
           
            byte[] bytes = new byte[fs.Length];
            fs.Read(bytes, 0, bytes.Length);
            string s = Encoding.ASCII.GetString(bytes);

           //buscar mietras que no encuentre palabraBuscada
            do {
                if (s == "agua")
                {
                    contador++;
                }
            } while (acabar==false); //este se modifica mas adelante, cuando la encuentra

                if(bool b = s.Contains(palabraBuscada);
               listBox1.Items.Add("si esta, agua esta "+contador +"veces");
               acabar = true;
else
              listBox1.Items.Add("no esta");

eltruhanero:

--- Cita de: "computadora" ---
           //buscar mietras que no encuentre palabraBuscada
            do
            {
                if (s == "agua")
                {
                    contador++;
                }
             } while (acabar==false); //este se modifica mas adelante, cuando la encuentra

                if(bool b = s.Contains(palabraBuscada);
               listBox1.Items.Add("si esta, agua esta "+contador +"veces");
               acabar = true;
else
              listBox1.Items.Add("no esta");

--- Fin de la cita ---

Algunas cosas de esta parte:

Primero que lavariable 's' va a tener TODO el string del archivo, o sea si el documento.txt tenes "agua perro casa auto agua domingo sabado algo palabra agua", 's' va a tener todo eso, por lo que s == "agua" (o mejor puesto "s.Equals("agua")"  :P  ) SIEMPRE va a dar falso!!  :o

Ademas ...que es lo que hace este bucle? Suponiendo que contador es 0 y acabar es falso inicialmente por ejemplo...

--- Código: C# --- do {     if (s == "agua")      {             contador++;      }} while (acabar==false);  Pasos:
 1.Evalua el if y da falso ( como vimos antes )
 2. Evalue acabar == false y da falso xq inicialemente acabar era falso
 3.Evalua el if y da falso ( como vimos antes )
 4. Evalue acabar == false y da falso xq inicialemente acabar era falso
 .... y asi infinitamente... no se si fue que simplemente le errastes en los {} o se te paso ese detalle

Se entiende?

Saludos, Daniel.

Navegación

[0] Índice de Mensajes

[*] Página Anterior

Ir a la versión completa