Ver Mensaje Individual
  #4 (permalink)  
Antiguo 29/06/2013, 10:42
vosk
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 8 meses
Puntos: 83
Respuesta: Manejo de ficheros y listas en C

La forma mas facil es ir leyendo lineas y comparar con el inicio de frase esperado que en este caso es 'Mail: ', de forma que quitando la entrada el resto de frase es lo que buscas; un ejemplo:

Código C:
Ver original
  1. #include <stdio.h>
  2.  
  3. #define MAXLINE 256
  4. #define SEARCHP "Mail: "
  5.  
  6. int main() {
  7.     char linea[MAXLINE], *pch;
  8.     FILE *arx = fopen("test.txt", "r");
  9.    
  10.     while(1) {
  11.         if(!fgets(linea, MAXLINE, arx)) {
  12.             if(ferror(arx)) {
  13.                 //se produjo un error
  14.             }
  15.             break;
  16.         }
  17.        
  18.         if((pch = strstr(linea, SEARCHP)) && !(pch-linea)) {
  19.             printf("%s\n", linea+strlen(SEARCHP));
  20.         }
  21.        
  22.         //final de archivo
  23.         if(feof(arx)) {
  24.             break;
  25.         }
  26.     }
  27.    
  28.     fclose(arx);
  29.     getchar();
  30.     return 0;
  31. }

Lo que te interesa es la parte del strstr: buscas si dentro de la linea leida pone 'Mail: ', y ademas requieres que ese 'Mail: ' esté desde el primer caracter (pch-linea) resulta la posicion donde se encontro la coincidencia.

La parte de datos es lo que queda de frase despues de 'Mail: ', por eso puedo mostrar linea+strlen("Mail: "). Ten en cuenta que esto incluye un \n (o incluso un \r\n, depende del editor de texto con que hayas creado el txt), de forma que si quisieras compiar el resultado a otro char* tendrias que omitir ese caracter final.

Saludos
vosk