Foros - Stratos

Stratos => General => Mensaje iniciado por: Sacrifai en 10 de Septiembre de 2004, 01:10:30 AM

Título: Problemilla Con Ficheros
Publicado por: Sacrifai en 10 de Septiembre de 2004, 01:10:30 AM
 Estoy haciendo algunas cosillas con ficheros y me han saltado algunas dudillas. Resulta que quiero saber si el fichero tiene cierta cadena en cualquier parte de este ¿como lo hago? Por cierto para obtener los caracteres del fichero uso fgets para guardarlo luego en un array ¿es esta la forma mas eficaz?. Otra cosilla, resulta que estoy de pruebas y quiero ver si el fichero es igual a una string. Asi que hago el fgets y luego lo comparo con la string, pero resulta que aun siendo iguales el programa no los ve igual  :(  ¿acaso ai algo que yo no pueda ver?

Gracias por adelantado  (ole) .
Título: Problemilla Con Ficheros
Publicado por: Jond en 10 de Septiembre de 2004, 08:59:54 AM
 Podrias poner el código en
el que comparas los ficheros
para ver que estas haciendo mal?

Y para buscar una cadena en un fichero,
create una función que lea el fichero completo
en un array de strings y luego
busca esa cadena en los strings
haber si lo encuentra o no.


Pseudo codigo ON

Array Strings = contenido_fichero()

booleando encontrado=falso
entero frase=0
entero frases=tamaño array strings

mientras encontrado=falso y frase<=frases
                if (buscar cadena en String(frase))
                       encontrado=verdadero
                else
                     frase++


devolver encontrado

Pseudo codigo OFF

Título: Problemilla Con Ficheros
Publicado por: Mars Attacks en 10 de Septiembre de 2004, 10:46:09 AM
 "Resulta que quiero saber si el fichero tiene cierta cadena en cualquier parte de este ¿como lo hago?"

grep -i "texto" fichero

"Otra cosilla, resulta que estoy de pruebas y quiero ver si el fichero es igual a una string. Asi que hago el fgets y luego lo comparo con la string, pero resulta que aun siendo iguales el programa no los ve igual"

Pues depende de cómo lo hagas, si comparas string contra string (con strcmp(string1,string2)) asegúrate de que lo que vayas a comparar y la cadena de destino tienen ambas el \0 al final (o no la tiene ninguna).

De momento no se me ocurre nada más.
Título: Problemilla Con Ficheros
Publicado por: Sacrifai en 10 de Septiembre de 2004, 11:13:15 AM
 
Cita de: "Mars Attacks"grep -i "texto" fichero
Creo que no me has entendido bien  (ole) . Vereis, resulta que estoy haciendo un lenguajillo de scripting (o al menos intentadolo) y lo que quiero es eso, leer cada cadena y que devuelva 1 o 0 en funcion de si ha encontrado o no la cadena. Pero creo que la voy a tener que hacer yo , porque me da que no hay funciones de ese tipo  (nooo) .
Título: Problemilla Con Ficheros
Publicado por: ethernet en 10 de Septiembre de 2004, 11:29:52 AM
 en C puedes usar strstr que busca una subcadena en una cadena y retorna un puntero al comienzo
En c++ con std::string tienes find. Para mas info: http://www.sgi.com/tech/stl/basic_string.html

saludos
Título: Problemilla Con Ficheros
Publicado por: Sacrifai en 10 de Septiembre de 2004, 01:09:57 PM
 Habrá que probarlo. Gracias a todos  (uoh) .