ciao a tutti, sbirciando nelle guide-esempi di questo forum, mi sono soffermato in un codice di una rubrica. davvero ben fatto anche se mi pare abbastanza macchinoso.
rileggendolo non riesco a capire il significato di un pezzo di codice:
struct elemento *leggiDaFile(struct elemento *p)
462 { // leggiDaFile - OPEN
463
464 // Dichiaro le variabili
465 t_contatto daInserire;
466 t_contatto vuoto; // elemento vuoto
467 struct elemento *punt = p;
468 char linea[500]; // stringa per l'acquisizione
469 int index=0; // inizializza l'indice
470
471 // Apre il file
472 FILE *stream = fopen("rubrica.txt","rt");
473
474 // Salvo la lista di contatti
475 while(fgets(linea, 500, stream) != NULL)
476 { // WHILE - OPEN
477
478
479 index = strcspn(linea, ",");
480 strncpy(daInserire.nome, linea, index);
481 substring(daInserire.nome, daInserire.nome, 0, index-1);
482 substring(linea, linea, index+1, strlen(linea));
483 index = strcspn(linea, ",");
484 strncpy(daInserire.cognome, linea, index);
485 substring(daInserire.cognome, daInserire.cognome, 0, index-1);
486 substring(linea, linea, index+1, strlen(linea));
487 index = strcspn(linea, ",");
488 strncpy(daInserire.telefono, linea, index);
489 substring(daInserire.telefono, daInserire.telefono, 0, index-1);
490 substring(linea, linea, index+1, strlen(linea));
491 index = strcspn(linea, ",");
492 strncpy(daInserire.email, linea, index);
493 substring(daInserire.email, daInserire.email, 0, index-1);
494 substring(linea, linea, index+1, strlen(linea));
495 strcpy(daInserire.sitoweb, linea);
496 substring(daInserire.sitoweb, daInserire.sitoweb, 0, strlen(daInserire.sitoweb)-2);
497
498 // Aggiunge l'elemento alla lista
499 p = punt;
500 punt = (struct elemento *)malloc(sizeof(struct elemento));
501 punt->inf = daInserire;
502 punt->pun = p;
503
504 // azzera il valore di daInserire
505 daInserire = vuoto;
506
507 } // WHILE - CLOSE
508
509 // Chiude il file
510 fflush(stream);
511 fclose(stream);
512
513 // Esce dalla funzione e restituisce la lista
514 return(punt);
515
516 } // leggiDaFile - CLOSE
In particolare la stringhe strncpy e substring...qualcuno me ne sa parlare.
grazie