Sie sind auf Seite 1von 9

25/10/13

hacer una busqueda de una palabra en un archivo txt externo

Sbado 26 de Octubre de 2013, 05:59

Publicidad

Buscar en el Tema actual...

Inicio

Foros

Chat Ayuda Buscar Ingresar

Bienvenido(a), Visitante. Por favor, ingresa o regstrate. Perdiste tu email de activacin?


Registrarse

#solocodigo

SoloCodigo Foros CLR: .Net / Mono / Boo / Otros CLR C# (Moderador: ProfesorX) hacer una busqueda de una palabra en un archivo txt externo

anterior prximo Pginas: [ 1]


IMPRIMIR

Autor (Ledo 1349 veces)

Tema: hacer una busqueda de una palabra en un archivo txt externo


hacer una busqueda de una palabra en un archivo txt externo
en: Domingo 11 de Abril de 2010, 21:24

computadora

Nuevo Miembro Mensajes: 11

hola, lo que quiero saber es como en un windows application de c# puedo hacer que el usuario pueda seleccionar un archivo e introducir una palabra para buscarlo en el esto es lo que Publicidad tengo, pero no hace nada, solo revisa el ultimo renglon del archivo txt seleccionado que le puedo modificar?
solocodigo.com/42747/hacer-una-busqueda-de-una-palabra-en-un-archivo-txt-externo/ 1/9

25/10/13

hacer una busqueda de una palabra en un archivo txt externo

*tengo 2 botones, para borrar y buscar el doc y un listbox para poner los resultados ***** int r = 0; bool esta = false; OpenFileDialog OpenFile = new OpenFileDialog(); OpenFile.ShowDialog(); try { FileStream son = new FileStream(OpenFile.FileName, FileMode.Open, FileAccess.Read); StreamReader so = new StreamReader(son); for (int i = 0; i <= 16; i++) //NO. DE RENGLONES { if (textBox1.Text.ToString() == "<CP>") { pag++; ; } if (textBox1.Text.ToString() == "<CC>") { cap++; ; } if (textBox1.Text.ToString() == (so.ReadLine()).ToString()) { r = i + 1; esta = true; } } so.Close(); } catch (ArgumentException) { } if (esta == true) { listBox1.Items.Add("Se encuentra en la pagina " + pag + ", capitulo " + cap); } else { listBox1.Items.Add("La palabra no fue encontrada"); }

private void button2_Click(object sender, EventArgs e) {


solocodigo.com/42747/hacer-una-busqueda-de-una-palabra-en-un-archivo-txt-externo/ 2/9

25/10/13

hacer una busqueda de una palabra en un archivo txt externo

listBox1.Items.Clear(); } }

***** gracias !
Tw ittear 0 Me gusta 0 0

eltruhanero
Miembro activo Mensajes: 85

Re: hacer una busqueda de una palabra en un archivo txt externo


Respuesta #1 en: Domingo 11 de Abril de 2010, 23:16

te pego un ejemplo
Cdigo: C#

1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 .

F i l e S t r e a mf s=n e w F i l e S t r e a m ( @ " C : a r c h i v o . T X T " , F i l e M o d e . O p e n ) ; y t e s=n f s b y t e [ ]b e wb y t e [ . L e n g t h ] ; f s b y t e s ,0 ,b y t e s . R e a d ( . L e n g t h ) ; s t r i n gs= E n c o d i n g . A S C I I . G e t S t r i n g ( b y t e s ) ; b s b o o l =. C o n t a i n s ( " p a l a b r a _ a _ b u s c a r " ) ;

computadora
Nuevo Miembro Mensajes: 11

Re: hacer una busqueda de una palabra en un archivo txt externo


Respuesta #2 en: Lunes 12 de Abril de 2010, 18:44

gracias eltruhanero, tu codigo si me sirvio y le entendi unicamente a este no: string s = Encoding.ASCII.GetString(bytes);
solocodigo.com/42747/hacer-una-busqueda-de-una-palabra-en-un-archivo-txt-externo/ 3/9

25/10/13

hacer una busqueda de una palabra en un archivo txt externo

bool b=s.Contains("palabra_a_buscar"); otra cosa, y como podria poner un contador que sume uno cada vez que encuentre la palabra "agua" antes de la palabra buscada?? esto es lo que tengo *********** //buscar mientras que no encunetre la palabra do { if (s == "agua") { contador++; } } while (acabar==false); //este seria true cuando encuentre la palabra

if (s.Contains(palabraBuscada) == true) { acabar = true; }+ ******* gracias de antemano

eltruhanero
Miembro activo Mensajes: 85

Re: hacer una busqueda de una palabra en un archivo txt externo


Respuesta #3 en: Lunes 12 de Abril de 2010, 21:18

No precisas recorrer todo el archivo para saber si existes un string en el. Te comento el codigo:
Cdigo: C#

solocodigo.com/42747/hacer-una-busqueda-de-una-palabra-en-un-archivo-txt-externo/

4/9

25/10/13

hacer una busqueda de una palabra en un archivo txt externo

1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 1 0 . 1 1 . 1 2 .

/ /T e" l i n k e a s "c o ne la r c h i v o . F i l e S t r e a mf s=n e w F i l e S t r e a m ( @ " C : a r c h i v o . T X T " , F i l e M o d e . O p e n ) ; / /C o p i a st o d oe lc o n t e n i d od e la r c h i v o am e m o r i a y t e s=n f s b y t e [ ]b e wb y t e [ . L e n g t h ] ; f s b y t e s ,0 ,b y t e s . R e a d ( . L e n g t h ) ; / /T r a n s f o r m a sl o sb y t e sd e la r c h i v oa u ns t r i n gg i g a n t e s c o s t r i n gs= E n c o d i n g . A S C I I . G e t S t r i n g ( b y t e s ) ; / /A l s t r i n gg i g a n t el e v a n t a d o ,l e p r e g u n t a ss it i e n et a lp a l a b r a s b o o lb = . C o n t a i n s ( " p a l a b r a _ a _ b u s c a r " ) ;

1 3 . 1 4 . Si queres saber cuantas palabras tiene podes hacer: 1 5 .


Cdigo: C#

1 . 2 . 3 . 4 . 5 . 6 .

computadora
Nuevo Miembro

7 . 8 . 9 . / /I n i c i a l i z o a n t=0 1 0 . i n tc ; 1 1 . / /m i e n t r a ss i g at e n i e n d oe s ap a l a b r a b 1 2 . w h i l e( ) 1 3 . { c a n t 1 4 . + + ; s=s b u s c a r , 1 5 . . R e m o v e ( 1 ) ; b s b u s c a r Me 1 6 entendes? . No = lo . C compile o n t a i n ni s ( nada x lo ) q; puede tener 1 7 . } errores...pero conceptualmente esta bien... 1 8 . La desventaja de este metodo es q si el archivo pesa 50 mb levantas 1 9 . a memoria... / /s ibe st r u e ,l ac a n t i d a dd ev e c e sq 50mb e s t ae s ap a l a b r ae sc a n t . 2 0 . / /s ibe sf a l s e ,c a n te s0 . Saludos, Daniel 2 1 . 2 2 . 2 3 . Re: hacer una busqueda 0 de una palabra en un
5/9

F i l e S t r e a mf s=n e w F i l e S t r e a m ( @ " C : a r c h i v o . T X T " , F i l e M o d e . O p e n ) ; y t e s=n f s b y t e [ ]b e wb y t e [ . L e n g t h ] ; f s b y t e s , , b y t e s . R e a d ( 0 . L e n g t h ) ; s t r i n gs= E n c o d i n g . A S C I I . G e t S t r i n g ( b y t e s ) ; u s c a r= c o n s ts t r i n gb " p a l a b r a _ a _ b u s c a r " ; s b u s c a r b o o lb = . C o n t a i n s ( ) ;

solocodigo.com/42747/hacer-una-busqueda-de-una-palabra-en-un-archivo-txt-externo/

25/10/13

hacer una busqueda de una palabra en un archivo txt externo

archivo txt externo


Mensajes: 11 Respuesta #4 en: Martes 13 de Abril de 2010, 04:06

muchisimas gracias por tus respuestas, de verdad creo que me explique mal, dejame te pongo un ejemplo: supongamos que el texto a leer es: agua perro casa auto agua domingo sabado algo palabra agua y lo que quiero es que la palabra a buscar sea "sabado" y me cuente cuantas veces la palabra "agua" esta antes de ella, que serian 2 entonces seria modificar esto del ultimo codigo, pero al probarlo pues no me sale while (b) { cant++; s = s.Remove("agua",1); b=s.Contains(buscar); }

gracias de nuevo

eltruhanero
Miembro activo Mensajes: 85

Re: hacer una busqueda de una palabra en un archivo txt externo


Respuesta #5 en: Martes 13 de Abril de 2010, 17:35

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
Nuevo Miembro Mensajes: 11

Re: hacer una busqueda de una palabra en un archivo txt externo


Respuesta #6 en: Martes 13 de Abril de 2010, 19:34

solocodigo.com/42747/hacer-una-busqueda-de-una-palabra-en-un-archivo-txt-externo/

6/9

25/10/13

hacer una busqueda de una palabra en un archivo txt externo

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
Miembro activo Mensajes: 85

Re: hacer una busqueda de una palabra en un archivo txt externo


Respuesta #7 en: Martes 13 de Abril de 2010, 20:40 Cita de: "computadora"

solocodigo.com/42747/hacer-una-busqueda-de-una-palabra-en-un-archivo-txt-externo/

7/9

25/10/13

hacer una busqueda de una palabra en un archivo txt externo

//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");

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")" falso!! Ademas ...que es lo que hace este bucle? Suponiendo que contador es 0 y acabar es falso inicialmente por ejemplo...
Cdigo: C#

) SIEMPRE va a dar

1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 1 0 .

d o { s= i f( =" a g u a " ) { c o n t a d o r + + ; } a c a b a r }w h i l e( = = f a l s e ) ;

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?

solocodigo.com/42747/hacer-una-busqueda-de-una-palabra-en-un-archivo-txt-externo/

8/9

25/10/13

hacer una busqueda de una palabra en un archivo txt externo

Saludos, Daniel.

Pginas: [ 1]

IMPRIMIR

anterior prximo
SoloCodigo Foros CLR: .Net / Mono / Boo / Otros CLR C# (Moderador: ProfesorX) hacer una busqueda de una palabra en un archivo txt externo

Ir a:

=> C #

ir

SMF 2.0.5 | SMF 2011, Simple Machines PortaMx-SEF 1.3 | PortaMx 2008-2011, PortaMx corp. newBalance by DzinerStudio SoloCodigo 2002-2013 | Informacin Legal

solocodigo.com/42747/hacer-una-busqueda-de-una-palabra-en-un-archivo-txt-externo/

9/9

Das könnte Ihnen auch gefallen