Programación General > C/C++
Re: FILAS Y COLUMNAS EN C
elpolo:
Alguien sabe si existe alguna función en C que me devuelva la fila y la columna del fichero fuente donde se realiza la llamada a esta hipotética funcion?
En otras palabras, como puedo calcular la posición del curso en un fichero fuente?
© Jonathan ©:
Hola amigo, aqui te presento un pequeño fragmento, el cual utilice para solucionar un pronlema similar al tuyo.::
Cuando trabajamos con un fichero, es posible que necesitemos acceder directamente a una cierta posición del mismo. Para ello usamos "fseek", que tiene el formato:
int fseek(FILE *fichero, long posic, int desde);
Comentemos qué es cada cosa:
Es de tipo "int", lo que quiere decir que nos va a devolver un valor, para que comprobemos si realmente se ha podido saltar a la dirección que nosotros le hemos pedido: si el valor es 0, todo ha ido bien; si es otro, indicará un error (normalmente, que no hemos abiertos el fichero).
"fichero" indica el fichero dentro de el que queremos saltar. Este fichero debe estar abierto previamente (con fopen).
"posic" nos permite decir a qué posición queremos saltar (por ejemplo, a la 5010).
"desde" es para poder afinar más: la dirección que hemos indicado con posic puede estar referida al comienzo del fichero, a la posición en la que nos encontramos actualmente, o al final del fichero (entonces posic deberá ser negativo). Para no tener que recordar que un 0 quiere decir que nos referimos al principio, un 1 a la posición actual y un 2 a la final, tenemos definidas las constantes:
SEEK_SET (0): Principio
SEEK_CUR (1): Actual
SEEK_END (2): Final
Finalmente, si queremos saber en qué posición de un fichero nos encontramos, podemos usar "ftell(fichero)".
Para mas informacion acerca de la funcion de lectura de la posicion en un fichero, por fovor consulta la ayuda de tu compilador.
SALUDOS.
elpolo:
Antes de nada muchas gracias pero mi pregunta no era esa. Lo que quiero no es leer un fichero de entrada y situarme en alguna posición determinada. Mi intención es realizar una especie de depurador que genere un fichero de salida en el que me vaya indicando por qué fichero va evolucionando mi programa, porqué´fila y columna va, etc. Por lo tanto lo que yo busco es que en mi main.c pueda utilizar una función o algo así que me devuelva la posición en la que se encuentra la llamada a esta función dentro del código fuente. A ver si me puede ayudar alguien
Gracias de todas forma jonathan
Astor:
Podrias explicarte nuevamente ya que, sinceramente, no logro comprender tu necesidad.
elpolo:
A ver, supongamos que tengo el siguiente código fuente miPrograma.c
main()
{
.....
//aqui hago una llamada a una función
Escribe_Mens_Fichero_Trazas("miPrograma.c", fila_del_fichero_fuente,"Estoy en el programa principal");
.....
}
Lo que busco es hacer un fichero de trazas que vaya registrando la evolución del programa principal. En este fichero de trazas aparecerá una línea por cada llamada a la funcion Escribe_Mens_Fichero_Trazas("miPrograma.c", fila_del_fichero_fuente,"Estoy en el programa principal")
La linea en el fichero de trazas será
[miPrograma.c: Fila:fila_del_fichero_fuente: Mensaje:Estoy en el programa principal]
El problema es que no se como averiguar la linea donde hago la llamada a la funcion Escribe_Mens_Fichero_Trazas en el codigo fuente
Espero que te haya aclarado esto lo suficiente y q me puedas ayudar
Saludos
Navegación
[#] Página Siguiente
Ir a la versión completa