CLR: .Net / Mono / Boo / Otros CLR > C#
hacer una busqueda de una palabra en un archivo txt externo
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
[*] Página Anterior
Ir a la versión completa