Archivos

Iniciado por Beginner Web, 21 Noviembre 2018, 18:40 PM

0 Miembros y 2 Visitantes están viendo este tema.

CalgaryCorpus

Si haces

      i = 3;

e inmediatamente despues haces

      i = 5;

que crees que pasa con el 3?

Si en un programa tuvieras esto:

      i = 3;
      i = 5;


la primera linea seria completamente superflua, podrias eliminarla y el programa funcionaria igual.

Esto que parece obvio se puede ocultar en el paso de parametros de una funcion.

void f(int i) {
    i = 5;
}

int main() {
   f( 3 );
// ...
}


Es lo mismo anterior, pero usando el paso de parametros. A i se le asigna 3 y luego se le asigna 5, no se usa el valor 3, se sobreescribe con el 5 posterior.

No tiene sentido invocar f(3), si lo primero que se hace en f es ignorar lo que se pasa y usar un valor distinto.

Eso estas haciendo en tus funciones que pasan como parametro una referencia a un archivo (cerrado,  o no), y que lo primero que hace es reasignar la referencia a algo mas.

Tu programa funcionaria igual sin poner ni pasar ese parametro, si lo pasas, no cierres el archivo, si lo cierras antes, no lo pases.

En tu caso, parece que lo que corresponde es la primera opcion.
Aqui mi perfil en LinkedIn, invitame un cafe aqui

Beginner Web

#11
Mmmm no entendi pero me funciona de maravilla, si te pasara el programa de 600 lineas te daria cuenta lo que tengo que hacer,  me falta corregir un par de modulos, cuando lo tenga terminado al programa te mando un privado y le hechas un ojo :D
7w7

Serapis

CitarEs que hay que cerrarlo si vas a llamar a otro metodo que te hace una busqueda secuencial en el mismo bebe, saludos
No necesariamente. Basta que cambies el puntero al punto deseado, habitualmente al comienzo del fichero.

Piensa que a veces es más útil utilizar varios canales para un mismo fichero, que saltar entre punteros o que andar cerrando y abriendo el mismo fichero...