Pascal/Turbo Pascal - Busqueda de palabras

 
Vista:

Busqueda de palabras

Publicado por Chino (2 intervenciones) el 10/04/2002 21:40:37
Si necesito buscar una palabra especifca dentro de un archivo, no tengo claro como hacer para encontrarlo de manera optima. Sera mejor obtener la cantidad de letras que posee la palabra a buscar e ir partiendo en esa cantidad las lineas del archivo, o ir comparando las letras de la palabra con el archivo, pero como acceso las palabras dentro del archivo,realmente se me ha complicado el asunto de la busqueda, cualquier comentario y ayuda lo agradezco.
Gracias.....
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Busqueda de palabras

Publicado por Roberto Garcia (128 intervenciones) el 13/04/2002 01:46:16
Poder encontrar una palabra dentro de un archivo de texto es muy sencillo, debes
1. leer linea por linea o
2. letra por letra

1. lees una linea del archivo del texto y usas la funcion pos para ver si en esa linea esta la palabra a buscar

while not eof(archivo) or bandera do begin

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Busqueda de palabras

Publicado por Roberto Garcia (128 intervenciones) el 13/04/2002 01:55:57
Poder encontrar una palabra dentro de un archivo de texto es muy sencillo, debes
1. leer linea por linea o
2. letra por letra

1. lees una linea del archivo del texto y usas la funcion "pos" para ver si en esa linea esta la palabra a buscar

bandera:=false;
while not eof(archivo) or not bandera do begin
readln(archivo,cadena);
bandera:=pos(s,cadena);
end;

"s" es la plabra a buscar y cadena es donde se va a buscar

2. en letra por letra se supone que las palabras en el archivo estan separadas por espacio, juntas todas las letras hasta que encuentres un espacio y luego la comparas con la cadena que buscas

bandera:=false;
while not eof(archivo) or not bandera do begin
repeat
read(archivo,op);
if op<>' ' then
cadena:=cadena+op;
until (op=' ') or eof(archivo);
bandera:=s=cadena;
end;

"op" y "cadena" son variables de tipo char y "s" es la palabra que se busca

Espero te sirva
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Busqueda de palabras

Publicado por Roberto (128 intervenciones) el 13/04/2002 02:28:05
Me equivoque con la funcion pos, esta devuelce la posicion en la que se encuentra la cadena que se busca, por ejemplo

cadena:='Roberto Garcia';
pos(ber,cadena);

pos devuelve 3

entonces se sustituiria bandera:=pos(s,cadena) por

posicion:=pos(s,cadena)
bandera:=posicion<>0

pos devuelve 0 si la cadena no se encontro
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Busqueda de palabras

Publicado por jorge fernando (9 intervenciones) el 29/04/2002 18:20:54
primero crea un analizador semantico depspues genera las comparaciones y ya esta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar