From: "andrea medeghini" <andreamedeghini@xxxxxxxxxxxxx> Subject: [prog-it] Re: Mailreader, need help :-( > > Si', ma ci sono vari problemi: il primo e' che non conosci a priori la > > lunghezza di una riga della mail, e per me e' gia' un problema leggerla > > dal file; le tre stringhe che devo avere alla fine vanno memorizzate in un > > array del tipo "char *row[3];", per poterle inserire nella lista a > > colonne, e ognuna di esse deve essere allocata e liberata dopo > > l'inserimento; inoltre non riesco a gestire le eccezioni come, ad esempio, > > i subject vuoti ("Subject: \n")... > > provo a darti qualche idea (che potrebbe essere sbagliata) >....... l'idea di Andrea mi sembra ottima, cmq se i dati li leggi da un file puoi sempre, prima di allocare il buffer in memoria , leggere quanto e' lungo il file e regolarti di conseguenza..... ....inoltre se memorizzi tutti i token con il metodo delle strutture ti basta vedere cosa hai memorizzato dopo il token "Subject:" se hai il token "Data:" (sto sparando a caso non ho presente i campi del tuo file) o se la struttura e' finita il campo "oggetto" dell'email sara' vuoto se avrai altre parole non lo sara'...... ......boh forse non ho aggiunto niente di interessante :-\ cmq facci sapere ciao z3lig PS esempio preso dall' help del vecchio borland c 3.0 per leggere la lunghezza di un file, credo vada bene anche per linux perche' usa funzioni ansi C ==============begin esempio=============== #include <stdio.h> long filesize(FILE *stream); int main(void) { FILE *stream; stream = fopen("MYFILE.TXT", "w+"); fprintf(stream, "This is a test"); printf("Filesize of MYFILE.TXT is %ld bytes\n", filesize(stream)); fclose(stream); return 0; } long filesize(FILE *stream) { long curpos, length; curpos = ftell(stream); fseek(stream, 0L, SEEK_END); length = ftell(stream); fseek(stream, curpos, SEEK_SET); return length; } =================end esempio================