Ver Mensaje Individual
  #2 (permalink)  
Antiguo 30/03/2015, 15:45
Avatar de vangodp
vangodp
 
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 11 años
Puntos: 38
Respuesta: No duplicar palabra al grabar en archivo [C]

esa función no te funciona debido al modo de apertura del fichero. Como abres el archivo como "a+" al hacer esto, el puntero de lectura/escritura se sitúa al final del archivo ya que estas en modo añadir contenido extendido a lectura, al hacer una búsqueda es como si buscaras desde el final hacia adelante cosa que sabemos que lo único que hay después de la ultima traducción es el EOF y nunca te va dar duplicados aun que hayan, estas buscando después de todo. XD

Eso se soluciona poniendo un rewind(ptrFile) antes del bucle para que inicie la lectura desde el principio del fichero. Pero no te olvides que si vas a volver a escribir en el debes poner el puntero al final con fseek o lo que sea, si vas añadir más contenido.

Otra cosa que vi es que el archivo se queda lleno de residuos. Puedes arreglar eso cambiando Traductor trad; por Traductor trad = {0}; en la función mainMenu, Eso te crea la estructura limpia sin residuos que estén en la memoria.

No he probado a fondo el programa, pero con eso ya puedes seguir. =D