Tags:
tag this topic
create new tag
view all tags
------+++ Domande sul ModuloQuattro Usate la form [[#LaForm][in fondo]] per aggiungere commenti. Come al solito, spostate le chiacchiere su OffTopic :-) --- %TOC% --- ---- ---+++ Guida sulla manipolazione di Directories e Files http://users.actcom.co.il/~choo/lupg/tutorials/handling-files/handling-files.html#directory <br> <br> Ho trovato questo tutorial sulle funzioni per la manipolazione delle directiories, spero possa essere utile :) -- Comment added by Users.RiccardoVona on 20 May 2005 ---- ---+++ EVVAI Modulo4!!! iniziavano a prudermi le mani per l'inattività... :) <br>e a prima vista sembra un modulo molto interessante :) -- Comment added by Users.AlbertoLaRocca on 20 May 2005 ---- ---+++ Errore di "include" in testModulo4.h Professore, credo nel file testModulo4.h, dovrebbe essere incluso testModulo1.h? -- Comment added by Users.MarcoEsposito on 21 May 2005 ---- ---+++ Dizionario.h Scusate se chiedo una cosa probabilmente già discussa in aula, ma il dizionario.h può essere rivisto nel modulo4? e quindi riconsegnato... -- Comment added by Users.AlessandroGrottoli on 21 May 2005 ---- ---+++ Errore di "include" in testModulo4.h si il prof si è scordato di mettere l' include "testModulo1.h" o meglio a messo l' include "modulo4.c" invece di quella, comunque basta cambiarla -- Comment added by Users.TizianoFranchi on 21 May 2005 ---- ---+++ voce in prossimaChiave() Nella funzione prossimaChiave() c'è un riferimento ad un argomento voce che però non viene passato -- Comment added by Users.MassimilianoNatale on 21 May 2005 ---- ---+++ manipolazione directory Per la manipolazione delle directory dovrebbero andar bene le system calls opendir() e readdir() -- Comment added by Users.MassimilianoNatale on 21 May 2005 ---- ---+++ funzione leggiFiles() Nella bozza relativa al quarto modulo leggo e non comprendo: "Usate il campo valore delle voci del dizionario per memorizzare il numero di occorrenze totali di ciascun token nei files". Chi mi fa capire il senso di questa specifica? -- Comment added by Users.MassimilianoNatale on 22 May 2005 ---- ---++++ funzione leggiFiles() Si, in pratica vuol dire che devi usare il campo dove memorizzavi il peso del token come contatore di occorrenze. Il fatto che le chiama voci è perchè quando il professore ci ha mostrato a lezione il modulo, originariamente dovevamo modificare la struttura dizionario del modulo 3 aggiungendo un altra struttura dati (voce appunto). Ma di comune accordo, per non modificare il codice del modulo 3 si è deciso di non inserire questa struttura. -- Comment added by Users.RiccardoVona on 22 May 2005 ---- ---+++ dizionario.h volevo sapere se il dizionario per il quarto modulo andava riconsegnato o se per la compilazione usava quello del modulo 3. -- Comment added by Users.TizianoFranchi on 22 May 2005 ---- ---+++ calcolaPesoEmail() nelle specifiche il prof ha scritto che prima di ordinare i tokens bisogna modificare il calcolo del peso del token tenendo conto dell'occorrenze. Ma quindi non bisogna ordinarli come nel modulo 3 ovvero per distanza maggiore da 0.5??? -- Comment added by Users.TizianoFranchi on 22 May 2005 ---- ---+++ ancora su leggiFiles() Quindi, se ho ben capito, io inizio a lavorare sui token contenuti nei files utilizzando il campo valore del token per inserirvi il numero di occorrenze del token stesso. Piccola precisazione: il numero di occorrenze o il peso parziale (ossia il prodotto tra il suo peso iniziale con il numero di occorrenze trovate) ? Grazie per la risposta -- Comment added by Users.MassimilianoNatale on 22 May 2005 ---- ---++++ RE: Errore di include Credo che tu abbia ragione, ho aggiornato il file. -- Comment added by Users.AndreaSterbini on 22 May 2005 ---- ---+++ test per la funzione leggiFiles() Per quanto riguarda il test della funzione leggiFiles() (ma di ogni altra funzione in genere che manipola directory) è possibile assumere directory standard (visto che verrano poi testate sul suo pc) ? -- Comment added by Users.MassimilianoNatale on 23 May 2005 ---- ---+++ chiarimenti su prossimaChiave() Ho alcuni dubbi sulla funzione prossimaChiave(). In particolare: avendo implementato il dizionario tramite hash table, per prossima chiave si intende quella che segue la chiave citata su quel particolare bucket? E perchè viene passato un puntatore doppio **next? -- Comment added by Users.MassimilianoNatale on 24 May 2005 ---- ---+++ Senza titolo? CIAO -- Comment added by Users.AndreaBartoli on 24 May 2005 ---- ---+++ Senza titolo? CIAO A TUTTI HO UN PROBLEMA CON LA LIBRERIA SAM153.DDL CHE VA A CERCARE UN FILE DI DEBUGGER CHE PERMETTE LA VISUALIZZAZIONE E LÁVVIO DEL SISTEMA OPERATIVO MEDIANTE UN PROCESSO DI ARCHIAVIAZIONE DEVIATO SU MACCHINE REMOTE. QUESTO NON MI PERMETTE LO SCORRIMENTO DEL BUGGER.DLL PER LA COMPILAZIONE (GCC E MAKE) DEI FILE C C COME POSSO FARE? TUTTI I CONSIGLI SONO ACCETTATI GRAZIE. P.S pER IL NUOVO MODULO E NECESSARIO AVVIARE UN TAVOLA HASH CHE PERMETTE LA MEMORIZZAZIONE E LA LETTURA DELLE PAROLE MEDIANTE UN USO DI PUNTATORI A PUNTATORI NON ALLOCATI DINAMICAMNETE GRAZIE. -- Comment added by Users.AndreaBartoli on 24 May 2005 ---- ---++++ RE: chiarimenti su prossimaChiave() La funzione *prossimaChiave* serve a enumerare *tutte* le chiavi contenute nel dizionario. * Si inizia passando NULL (e si torna la prima chiave). * Si continua passando la chiave appena letta (e ottenendo quella successiva) * alla fine si torna il codice NO_MORE_ELEMENTS La variabile <b>char ** next</b> serve a passare un _puntatore ad una variabile stringa_ e quindi a permettere di comunicare la chiave all'esterno. -- Comment added by Users.AndreaSterbini on 24 May 2005 ---- ---+++ prossimaChiave anche per questa funzione l'ordine con cui vengono rstituite le chiavi non importa?? -- Comment added by Users.TizianoFranchi on 24 May 2005 ---- ---+++ x AndreaBartoli togli quel caps lock, è inutile che strilli, ci hai assordati tutti :| <br>e comunque quello che hai scritto non ha senso :| <br>almeno dicci come si chiama la DLL (sempre che non ci stai prendendo in giro...) -- Comment added by Users.AlbertoLaRocca on 24 May 2005 ---- ---+++ **next ed ordine delle chiavi Dunque nella funzione prossimaChiave() il puntatore doppio **next deve puntatore a memoria allocata all'interno della funzione? Un assegnamento semplice dà luogo a segmentation fault dunque è da escludere. Per quanto riguarda l'ordine delle chiavi, volendo scrivere dei test concreti, essi saranno validi soltanto per quel dato programma. Esempio: il programma del professore compilato con i miei test non ne passerebbe nemmeno uno (a meno che, cosa poco probabile, il prof. non abbia utilizzato la mia stessa identica soluzione) -- Comment added by Users.MassimilianoNatale on 24 May 2005 ---- ---+++ [OT, perdonatemelo] prenotazione all'esonero di Arch II prof. Sterbini, la prego di notare che un certo Marco Guerra (credo che il nome sia inventato) cerca continuamente di cancellare la mia prenotazione agli esoneri di Architetture II scrivendo il suo nome al posto del mio: l'ha fatto anche nella pagina di prenotazioni del primo esonero (guardi "See diffs"); la prima volta che ho visto la sostituzione ho riscritto il mio nome e aggiunto il suo in fondo; poi lui ha ricancellato il mio, e allora io l'ho riscritto aggiungendoci anche un DENYTOPICCHANGE settato sul suo nome; ora ha di nuovo sostituito la mia prenotazione alla pagina del secondo esonero, e siccome mi sto stancando de sti giochetti cretini, tenga presente per favore che io mi sono prenotato anche se poi mi hanno cancellato (temo che Marco Guerra, o chiunque sia, riproverà a cancellarmi con un altro account se dovessi riscrivere il DENYTOPICCHANGE). grazie :) -- Comment added by Users.AlbertoLaRocca on 24 May 2005 ---- ---++++ _[Post cancellato]_ -- Comment added by Users.AndreaBartoli on 25 May 2005 Ho cancellato il post perchè offensivo -- Comment added by Users.AndreaSterbini on 25 May 2005 ---- ---+++ X Massimiliano riguardo a **next Beh, next è una stringa, quindi un puntatore a carattere (ossia un char *). Il secondo puntatore serve a far si che le eventuali modifiche vengano "salvate", ossia non vengano perse all'uscita dalla funzione "prossimaChiave". Ovviamente, però, essendo una stringa, se tu non le allochi della memoria, quando nella funzione prossimaChiave ci andrai a scrivere qualcosa, chissà dove diamine andrai a scrivere (la legge di Murphy asserisce che andrai a scrivere nel punto che più ti serviva o in qualche area protetta). Per questo ti da segmentation fault. Devi fare una malloc prima di passare il parametro, altrimenti la funzione scriverà in qualche posto della memoria poco consono. -- Comment added by Users.EnricoMontesi on 25 May 2005 ---- ---+++ Smettetela subito Users.AndreaBartoli e Users.AlbertoLaRocca, vi prego di calmarvi immediatamente e di discutere fuori da questa o da altre pagine di twiki. _[Andrea, effettivamente Alberto non ha torto, devi sapere che il CAPS LOCK viene normalmente usato per "alzare la voce" e quindi chi frequenta normalmente newsgroups e forums riceve immediatamente l'impressione di aver letto un post arrabbiatissimo. Se puoi, quindi, evita di usare le maiuscole se non è necessario]_ __PS.__ Se desideri una risposta a proposito della dll devi darmi più informazioni su cosa stai cercando di fare, di quale dll si tratta, quali comandi stai usando e quali sono i messaggi di errore che ti vengono (visto che non sono al tuo fianco mentre programmi a sbirciare il tuo schermo :-) ). __PPS.__ smettila di modificare le pagine dei tuoi compagni che altrimenti ti disattivo. ------++++ RE: riguardo al **next Facciamola corta, la funzione è pensata per essere chiamata in questo modo: <verbatim> char * questachiave = "pippo"; char * proxchiave; prossimaChiave(questachiave, diz, &proxchiave); </verbatim> E quindi serve un doppio puntatore per passare alla funzione l'indirizzo della variabile (di tipo * char) in cui la funzione deve mettere il puntatore alla prossima chiave. -- Comment added by Users.AndreaSterbini on 25 May 2005 ------+++ Disattivazione Andrea, ti ho disattivato perchè fai post offensivi. -- Comment added by Users.AndreaSterbini on 25 May 2005 ---- ---+++ Esempi di SPAM e HAM Ho messo in attachmenta al ModuloQuattro un file zippato contenente due directory che potete usare come esempi di SPAM e HAM per i vostri test. Io farò i miei test SOLO con queste due directory o con i file in esse contenuti. -- Comment added by Users.AndreaSterbini on 25 May 2005 ---- ---+++ Per quanto riguarda i double Ragazzi ho un dubbio. Quando devo copiare su file il dizionario (in scriviDizionario) come copio i "double"? Non sono un char*, quindi se li provo a passare a "fputs" o "fputc" mi da ovviamente errore. Voi cosa utilizzate? -- Comment added by Users.EnricoMontesi on 25 May 2005 ---- ---+++ Senza titolo? grazie -- Comment added by Users.AndreaBartoli on 25 May 2005 ---- ---+++ calcolaPesoEmail e valori maggiori di uno come si deve comportare la funzione calcolaPesoEmail quando incontra 2 o più occorrenze di un valore maggiore di 0.5? per il valore BAD non ci son problemi, ma quando si va a calcolare il valore GOOD con il prodotto dei (1 - Wi), si ottengono numeri negativi.. -- Comment added by Users.MarcelloLagana on 25 May 2005 ---- ---+++ %RED% *AGGIORNAMENTO PER LE OCCORRENZE* %FINE% __ATTENZIONE:__ ho aggiornato il calcolo per tenere conto delle occorrenze. La modifica va fatta DOPO aver scelto i 20 token diversi a distanza maggiore da 0.5. Quello che modifichiamo è il CALCOLO DELLE PRODUTTORIE <verbatim> bad_i = Prod( w_i * occ_i) good_i = Prod( (1 - w_i) * occ_i) </verbatim> -- Comment added by Users.AndreaSterbini on 25 May 2005 ---- ---+++ per Enrico Montesi (per quanto riguarda i double) La soluzione che ho adottato è (penso) la più semplice: fprintf("%s %f\n", chiave, valore). Va alla grande!!! -- Comment added by Users.MassimilianoNatale on 25 May 2005 ---- ---+++ correzione (ovvia) Alla fprintf devi ovviamente passato un puntatore FILE *fp che punta ad un file aperto in modalità "w" (primo argomento) -- Comment added by Users.MassimilianoNatale on 25 May 2005 ---- ---+++ token nelle email Nelle email ci stanno parecchie combinazioni di caratteri strani, virgole, punti, asterischi (e via discorrendo). I caratteri che ci interessano per le chiavi sarebbero i caratteri ischar() ? Oppure copiamo una chiave sino a quando non incontriamo un carattere bianco ('\n', ' ', '\t') ? -- Comment added by Users.MassimilianoNatale on 26 May 2005 ---- ---+++ Carattere strano in email4.txt Ho notato che nal file email4.txt (contenuto nella directory ham) vi è una stringa (che poi stringa non è) che viene trattata come carattere singolo e che dà, inserendola nel dizionario, segmentation fault. Questo carattere (stringa) è \226, provando a stamparla viene stampata come la stringa vuota, ma ha lunghezza 1 e il test per vedere se è una stringa vuota mi resituisce FALSE. Risultato: ogni volta che la inserisco nel dizionario ho segmentation fault. Davvero curiosa come cosa... -- Comment added by Users.MassimilianoNatale on 26 May 2005 ---- ---+++ calcolaPesoEmail dall'ultima lezione siamo rimasti che le occorrenze vanno moltiplicate senza modificare il peso dei token, quindi anche nell'ordinamento rimaniamo come il modulo 3, ovvere il peso senza occorrenza - 0.5?? -- Comment added by Users.TizianoFranchi on 26 May 2005 ---- ---++++ RE: token nelle email Usa le funzioni del modulo 1 per tokenizzare le email ------++++ RE: calcolaPesoEmail Esatto, resta tutto uguale tranne il calcolo dei prodotti -- Comment added by Users.AndreaSterbini on 27 May 2005 ---- ---+++ modificaValore(...) e calcolaPesoEmail(...) Professore, ma modificaValore(...) non dovrebbe solamente incrementare l'occorrenza di una certa chiave (se c'è) o inserirla nel dizionario (se non c'è) (se ho capito COSA fa questa funzione)? Dunque mi domando a cosa serva il parametro 'double valore'... Inoltre, professore, mi stavo domandando un'altra cosa. In calcolaPesoEmail(...) bisogna tener conto delle occorrenze di una chiave SOLO nel conteggio delle produttorie, il resto resta invariato...bene: ma allora non dovrei avere un altro campo nella struttura del dizionario per ricordarmi il numero di occorrenze della chiave? (o forse questo è solo il frutto dell'essere arrivato al modulo IV???) :) -- Comment added by Users.DavidBenedetti on 27 May 2005 ---- ---++++ modificaValore(...) e calcolaPesoEmail(...) modificaValore non deve incrementare, ma modificare il valore della chiave con quello passato come argomento... calcolaPesoEmail va a leggere il dizionario solo per attribuire un valore ai token. Non dovrebbe andare a modificarlo... Per ricordarti le occorrenze puoi usare molti altri modi come array, liste (come ho fatto io) ecc ecc.. -- Comment added by Users.MarcelloLagana on 27 May 2005 ---- ---+++ Peso senza occorrenza Scusate un attimo, non potendo seguire le lezioni e non avendo letto nulla a riguardo chiedo conferma (viste le affermazioni di Tiziano Franchi). Peso senza occorrenza = -0.5 OVVERO??? Inoltre: il peso di un token non presente nel dizionario è sempre = 0.4? -- Comment added by Users.MassimilianoNatale on 27 May 2005 ---- ---+++ modificaValore(...) e calcolaPesoEmail(...) Si, è vero per quanto riguarda calcolaPesoEmail(...), hai ragione Marcello...non ci avevo pensato al momento del post!!! GRAZIE! (nonostante questo, mentre scrivo mi stanno venendo l'ira un bel pò di dubbi...vabè...!!!) :) -- Comment added by Users.DavidBenedetti on 27 May 2005 ---- ---++++ RE: Peso_senza_occorrenza Se manca la occorrenza vuol dire che il token ha il suo peso (ovvero che il numero di occorrenze è 1). Se il token non è nel dizionario il suo peso è 0.4 -- Comment added by Users.AndreaSterbini on 27 May 2005 ---- ---+++ prossimaChiave la memoria per la stringa next è già stata allocata prima di chiamare prossimaChiave giusto??non è prossimaChiave che si occupa di allocarla!! -- Comment added by Users.TizianoFranchi on 28 May 2005 ---- ---+++ leggiFIles e tokenizzaEmail per tokenizzare i file dentro le directory devo usare tokenizzaEmail o una nuova funzione? Nei file di esempio le email mi sembra non abbiano headers validi, quindi la funzione del modulo1 tornerebbe sempre errore... -- Comment added by Users.MarcelloLagana on 28 May 2005 ---- ---+++ conversione dati qualcuno sà come posso convertire un double in stringa??? -- Comment added by Users.TizianoFranchi on 28 May 2005 ---- ---+++ Risolto -- Comment added by Users.TizianoFranchi on 28 May 2005 ---- ---++++ RE: prossimaChiave Perchè non torni direttamente il puntatore alla chiave che sta nel dizionario? ------++++ RE: leggiFIles e tokenizzaEmail certamente ci vuole tokenizzaEmail, ma dopo aver applicato al testo le trasformazioni del modulo 2 Riguardo i file di esempio e li aggiorno se necessario -- Comment added by Users.AndreaSterbini on 28 May 2005 ---- ---+++ leggiFiles nella directory dirname che file ci sono...? -- Comment added by Users.TizianoFranchi on 28 May 2005 ---- ---+++ Peso email Potrebbe fare un'esempio di un peso di un'email data con un vocabolario dato, per controllare che le produttorie siano corrette? -- Comment added by Users.AlessandroGrottoli on 28 May 2005 ---- ---+++ modulo4-leggiFiles dato che questa funzione deve contare le occorrenze dei token per creare il dizionario dobbiamo usare anche le funzione del primo e secondo modulo visto che i files sono email non tokenizzate..!quindi li dobbiamo includere anche i primi due oltre al terzo??? -- Comment added by Users.TizianoFranchi on 29 May 2005 ---- ---+++ RE: Peso_email Purtroppo no ------++++ RE: modulo4-leggiFiles Potete usare il mio codice ... è online nei test -- Comment added by Users.AndreaSterbini on 30 May 2005 ---- ---+++ [OT] risultati esonero prof., scusi l'OT, ma quando avremo i risultati del secondo esonero di architettura 2? è possibile averli prima dello scritto? perché se c'è gente che non è soddisfatta del voto potrebbe voler fare lo scritto parziale... grazie. -- Comment added by Users.AlbertoLaRocca on 30 May 2005 ---- ---+++ modulo4-leggiFiles I moduli precedenti l'ho fatti quindi vorrei usare i miei..solo volevo sapere se le funzione le devo trascrivere nel modulo4 o se facevamo come per il modulo3, ovvero lo riconsegnamo?? -- Comment added by Users.TizianoFranchi on 30 May 2005 ---- ---+++ scrivere un double su un file.. ragà ma per scrivere un double(valore) su un file che funzione và usata??.. io leggevo di una funzione chiamata "fcvt" che converte in una stringa un valore in virgola mobile, nella funzione stessa è possibile specificare anke il numero di cifre dopo la virgola..oppure stavo facendo un pensierino anke fprintf per la scrittura direttamente nel file..ditemi la vostra..fatemi sapere.. Cordiali Saluti.. -- Comment added by Users.DavideFacente on 30 May 2005 ---- ---++++ RE: risultati esonero Li sto correggendo ora. Li pubblicherò stasera. ------++++ RE: modulo4-leggiFiles Non li riconsegnate. ------++++ RE: Scrivere un double su un file Leggi la pagina del manuale della funzione *printf* -- Comment added by Users.AndreaSterbini on 30 May 2005 ---- ---+++ Scrivere un double su un file si usa la fprintf(file, "%f", double); -- Comment added by Users.TizianoFranchi on 30 May 2005 ---- ---+++ modulo4-leggiFiles allora le riscrivo mantenendo i nomi originali tanto sono inclusi solo i .h giusto?? -- Comment added by Users.TizianoFranchi on 30 May 2005 ---- ---+++ Headers Inesistenti Professore, nel tokenizzare le email presenti nelle directory HAM e SPAM, utilizzando la funzione tokenizzaEmail, questa non tokenizza nulla perchè, non è un'email corretta, poichè senza Headers...sbaglio io qualcosa? -- Comment added by Users.AlessandroGrottoli on 30 May 2005 ---- ---+++ Headers Inesistenti mi accodo alla domanda!!non potrebbe usare delle email che rispettano le specifiche che ha dato???sennò uno deve rifarsi le funzione del primo modulo e non mi sembra possibile! -- Comment added by Users.TizianoFranchi on 30 May 2005 ---- ---+++ Riconsegna Modulo3 Prof. Ho notato di aver messo i buffer troppo piccoli nel modulo1(e và sempre in seg fault), si può cambiare anche il modulo1 senza che venga rivalutato(come il modulo3). Ho visto che anche cambiando questi parametri tokenizzando alcune email, queste vanno in loop...(domanda ovvia, ma ci provo) userà le nostre funzioni per tokenizzare le email che ha dato?Perchè credo che come me altri siano nella mia stessa situazione...cioè rifare il modulo da capo -- Comment added by Users.SimoneMurzilli on 30 May 2005 ---- ---+++ Usare il suo codice Sto prendendo in considerazione di usare il suo codice dei moduli passati, come lei ha proposto. Quando farà i test linkerà il mio modulo4 e il mio modulo3 con i suoi modulo1 e modulo2, giusto? Oppure li linkerà comunque con le mie funzioni, ahimè non proprio corrette (e quindi i miei errori negli altri moduli si propagheranno anche al modulo4)? -- Comment added by Users.GiovanniColombi on 30 May 2005 ---- ---++++ RE: usare i miei modulo2 e modulo1 Quando farò i test linkerò con i miei modulo1 e modulo2 ------++++ RE: Scrivere un double su un file Non esattamente ... %f non basta per un double ... scavate ... scavate ... :-) ------++++ RE: problemi con le email Mi sono dimenticato di controllarle, lo faccio domani (martedì) -- Comment added by Users.AndreaSterbini on 31 May 2005 ---- ---++++ Scrivere un double su un file a quanto pare bisogna usare "%e":<br><a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_crt_printf_type_field_characters.asp?frame=true">link</a> :P -- Comment added by Users.AlbertoLaRocca on 31 May 2005 ---- ---+++ o forse è "%g"...? non capisco... -- Comment added by Users.AlbertoLaRocca on 31 May 2005 ---- ---+++ usare i miei modulo2 e modulo1 E chi volesse usare il proprio codice come fa visto che linca i suoi moduli?? -- Comment added by Users.TizianoFranchi on 31 May 2005 ---- ---+++ Scrivere un double su un file ok si usa %g come parametro per la fprintf()...giusto?? -- Comment added by Users.TizianoFranchi on 31 May 2005 ---- ---+++ Per i moduli precedenti sono presenti nel file modulo2.h i due vettori di SearchReplace per le lettere e i tagInvisibili?? -- Comment added by Users.TizianoFranchi on 31 May 2005 ---- ---++++ Per i moduli precedenti No, si era deciso di mettere i due vettori nel nostro main. -- Comment added by Users.GiovanniColombi on 31 May 2005 ---- ---++++ Scrivere un double su un file Ehm scusi professore O_o come c'è dell'altro? Sul D&D c'è scritto che per la printf la specifica di conversione per un double è %f (mentre per la scanf è %lf, ecco perchè tutti avevano i problemi usando %f :p ) -- Comment added by Users.RiccardoVona on 31 May 2005 ---- ---+++ Scrivere un double su un file Io uso fprintf con conversione %f e funziona. O sono io che mi illudo? -- Comment added by Users.MassimilianoNatale on 31 May 2005 ---- ---+++ Scrivere un double su un file con %f ti mette sul file, ad esempio se il peso è 0.3, il valore 0.3000000. Usando %g invece ti mette tutti i numeri esclusi gli zeri finali, quindi ad esempio: 0.321 invece che 0.3210000 -- Comment added by Users.TizianoFranchi on 01 Jun 2005 ---- ---+++ Per i moduli precedenti si ma il main non lo consegnamo, quindi volevo sapere dal prof se sul modulo2.h ci sono i due vettori, se è me li metto sul dizionario.h ma devo esse sicuro che non ci stanno nel modulo2.h -- Comment added by Users.TizianoFranchi on 01 Jun 2005 ---- ---+++ Per i moduli precedenti Forse il prof metterá sul suo main i due vettori???????? -- Comment added by Users.DavidBenedetti on 01 Jun 2005 ---- ---+++ b > 1.0 e g > 1.0 nelle specifiche ha detto che se queste due probabilità sono maggiori di 1.0 bisogna ridurle a 1.0, però nel modulo3 eravamo rimasti d'accordo che i pesi dei token dovevano essere diversi da 0.0 e 1.0 perchè sennò il calcolo dell'email veniva errato, o mi sbaglio?? -- Comment added by Users.TizianoFranchi on 01 Jun 2005 ---- ---++++ RE: Scrivere un double su un file Scusate se ho creato rumore inutile, quando vi ho risposto prima stavo pensando alla scanf. Va benissimo "%f" per scrivere nel file. ------++++ RE: files di esempio delle email Ho visto le email, avete ragione, mancano gli headers. Le sistemo al più presto (per stanotte). -- Comment added by Users.AndreaSterbini on 01 Jun 2005 ---- ---+++ Codice Prof. Modulo1 e 2 Prof. clikkando sul link nella parte dove ci sono i nostri test col suo codice...mi apre il link con i suoi test, è sbagliato il link, oppure non ho trovato il link giusto? -- Comment added by Users.SimoneMurzilli on 01 Jun 2005 ---- ---+++ Vettori Search Ma a cosa vi servono in questo modulo? -- Comment added by Users.AlessandroGrottoli on 01 Jun 2005 ---- ---+++ Vettori Search mi servono per pulire l'email spam prima di tokenizzarla -- Comment added by Users.TizianoFranchi on 01 Jun 2005 ---- ---+++ pagina di consegna ma la pagina di consegna del Modulo4 manca o sono io che non ho capito qualcosa? <img src="http://twiki.dsi.uniroma1.it/pub/Users/AlbertoLaRocca/mbe.gif"/> -- Comment added by Users.AlbertoLaRocca on 01 Jun 2005 ---- ---++++ Vettori Search Ma se hai già una funzione che lo fa, perchè inserire nuovamente il vettore? -- Comment added by Users.AlessandroGrottoli on 01 Jun 2005 ---- ---++++ RE: pagina di consegna Ora c'e' fatemi sapere se NON funziona. ------+++ Ho aggiornato i files Ho aggiornato il file *files.zip* con gli esempi di HAM e SPAM, ora gli headers ci sono. -- Comment added by Users.AndreaSterbini on 02 Jun 2005 ---- ---++++ Ho aggiornato i files ...le email HAM non vengono considerate valide dal modulo1 (TokanizzaEmail) perchè contengono un'header con sistassi(secondo le specifiche del modulo1) errata, X-Spam-Level: penultimo header, dopo il contesto c'è uno spazio e poi accapo...Non credevo poter di essere così pignolo ;-) -- Comment added by Users.AlessandroGrottoli on 02 Jun 2005 ---- ---+++ LeggiFiles e tokenizzaEmail LeggiFiles deve applicare solamente la pulisciTestoSemplice o anche la pulisciTestoRE (e relativa parseEspressioniRegolari)? e nel caso che l'email abbia qualche errore di header/body/ecc, si deve fermare o saltare il file? -- Comment added by Users.MarcelloLagana on 02 Jun 2005 ---- ---+++ tokenizzaEmail... BODY_NOT_FOUND Delle nuove email, non me ne tokenizza nemmeno una! tutte mi restituiscono BODY_NOT_FOUND. Uso il modulo1 e modulo2 del Professore.... -- Comment added by Users.MarcoEsposito on 02 Jun 2005 ---- ---+++ Errore nelle email HAM e SPAM -- Comment added by Users.MarcoEsposito on 02 Jun 2005 ---- ---+++ Errore nelle email HAM e SPAM HO CAPITO!! Stavo diventando matto... <br> ogni linea della email non termina con <verbatim>"\n"</verbatim><br> ma termina con <verbatim>"\r\n"</verbatim> -- Comment added by Users.MarcoEsposito on 02 Jun 2005 ---- ---++++ Errore nelle email HAM e SPAM Sembra che sto facendo un monologo... però ho trovato la soluzione usando il programma "dos2unix"<br> E infatti come dice "AlessandroGrottoli", mi restituisce BAD_HEADER -- Comment added by Users.MarcoEsposito on 02 Jun 2005 ---- ---+++ test_scriviDizionario --> FILE_UNWRITABLE Prof., ovviamente lei metterà un file "file-unwritable" nelle cartelle in cui eseguirà i test, giusto? -- Comment added by Users.GiovanniColombi on 02 Jun 2005 ---- ---++++ RE: Errore nelle email HAM e SPAM OK, passo tutto attraverso dos2unix e controllo i files entro stasera. ------++++ RE: FILE_UNWRITABLE certo -- Comment added by Users.AndreaSterbini on 02 Jun 2005 ---- ---+++ Ma perchè twiki "scapoccia"? Perchè sopra, l'indice delle domande arriva fino ad un certo punto e non ci sono le ultime Domande/Risposte?<br> -- Comment added by Users.MarcoEsposito on 02 Jun 2005 ---- ---+++ AGGIORNAMENTO di files.zip Ho controllato i files HAM/SPAM. * andavano trasformati in unix (con dos2unix) * i 5 in HAM avevano un header vuoto (tolti) Ora sono a posto e passano la (mia) tokenizzazione ---++++ RE: Ma perchè twiki "scapoccia"? Non usate tags nei titoli -- Comment added by Users.AndreaSterbini on 02 Jun 2005 ---- ---+++ CHE FINE HA FATTO ***FRANCO****???? Scusate per l'ot, il nostro prof. Franco Liberati di Architettura 2 sembra scompareso, sono settimane che non aggiorna il suo sito e non risponde alle mail. Lei, prof. Sterbini, ne sa qualcosa???? E' urgente perche vorremmo sapere i voti dell'esame. GRAZIE -- Comment added by Users.GaiaProvvidenti on 03 Jun 2005 ---- ---++++ RE: Franco Liberati Franco ha avuto un problema e si è dovuto trattenere in ospedale per accertamentei. Farà un nuovo appello scritto di ASM probabilmente dopo il 10 giugno. Purtroppo non è riuscito ad avvertirvi, si scusa. -- Comment added by Users.AndreaSterbini on 03 Jun 2005 ---- ---+++ RE: Franco Liberati E per quanto riguarda gli orali del 9 giugno ?? Non sappiamo ancora i risultati del secondo esonero e chi e' stato ammesso... Come facciamo ?? -- Comment added by Users.GaiaProvvidenti on 03 Jun 2005 ---- ---+++ Ham e Spam professore a me le sue email non le tokenizza e mi sembra strano che a lei lo fa..visto che nella prima ham c'è un primo_header che inizia con un tab prima del tipo e invece le specifiche erano che lo spazio o il tab poteva stare solo tra il tipo e il valore, mentre nella prima delle spam c' questa cosa: Return-Path: '<'pmadmin@di.uniroma1.it'>' dove il valore contenuto nel tag viene eliminato dalla pulisciTestoSemplice dando poi un errori di BAD_HEADER. O mi sbaglio?? -- Comment added by Users.TizianoFranchi on 03 Jun 2005 ---- ---++++ Ham e Spam No, le email (a me con il mio e con quello del prof) TokenizzaEmail() va alla grande, PulisciTesto() ha un bel gran BUG prof che ci era sfuggito, perchè come dice Tiziano quando va a pulire un'email, nel pulire gli headers, elimina parte di unì'header contenente un'indirizzo email rendendo l'header errato per TokanizzaEmail...credo che dovrà mettere on-line nuove email a prova di BUG!!! :-D -- Comment added by Users.AlessandroGrottoli on 03 Jun 2005 ---- ---+++ Dizionario.txt Appena verranno messe on-line email corrette, chi vuole scambiare il propio dizionario.txt creato per trovare eventuali divergenze? -- Comment added by Users.AlessandroGrottoli on 03 Jun 2005 ---- ---+++ Ancora problema con tokenizza email.... La cosa che mi chiedo è se la ripulitura del testo và fatta solo sul body dell'email.<br> Perchè se viene fatta una ripulitura totale dell'email compresi gli headers, alcuni header diventano non validi. -- Comment added by Users.MarcoEsposito on 03 Jun 2005 ---- ---+++ Ham e Spam no infatti poi mi sono accorto che per le ham non c'era nessun problema, era solo la prima spam a creare problemi. comunque per il dizionario.txt ce lo possiamo scambiare, anche ora tanto basta che togli < > e lo metti cosi: pmadmin@di.uniroma1.it e poi tokenizza!! -- Comment added by Users.TizianoFranchi on 03 Jun 2005 ---- ---++++ Ham e Spam Ok, ora modifico le emails, avvio e te lo invio per posta...se è valido il tuo indirizzo... -- Comment added by Users.AlessandroGrottoli on 03 Jun 2005 ---- ---+++ errore insolito nel modulo1.c del professore QUando vado a compilare il mio progetto il compilatore mi da un errore insolito. Mi dice che nel file "modulo1.c" (sto usando quello del professore, quindi in teoria quello che usate anche voi) c'è un errore. Per l'esattezza afferma che alle righe 31, 36 e 43 stiamo passando alla "close" un puntatore invece di un intero. Dato che il parametro passato era un puntatore a FILE, ho sostituito "close" con "fclose", e l'errore è sparito. Volevo sapere, ora, questo errore lo da solo a me? In teoria il file del professore dovrebbe essere uguale per tutti...quindi avrebbe dovuto dare lo stesso errore anche a voi. Qualcuno può illuminarmi? -- Comment added by Users.EnricoMontesi on 03 Jun 2005 ---- ---++++ errore insolito nel modulo1.c del professore A me non da nessun problema. Forse dipende dalla versione del compilatore... -- Comment added by Users.GiovanniColombi on 03 Jun 2005 ---- ---+++ Correzione del modulo 3 Volevo chiedere al professore se fosse possibile correggere il terzo modulo anche con i casi RESULT_OK entro Domenica...non per altro, ma visto che dobbiamo usare i nostri modulo3.c, vorrei sapere per tempo se ci sono errori che devo sistemare (magari incomprensioni su alcune specifiche che rischiamo di portarci dietro anche nel modulo 4 o altro ancora). -- Comment added by Users.EnricoMontesi on 03 Jun 2005 ---- ---++++ RE: Correzione modulo 3 Ho messo online la correzione più recente del modulo 3 ------++++ RE: pulitura + tokenizzazione Se ci riesco riguardo le email (le avevo solo tokenizzate ma non ripulite). ------++++ RE: Franco Liberati Non ne so nulla ... guardate sulla sua pagina web (che non so quale sia :-( ) -- Comment added by Users.AndreaSterbini on 04 Jun 2005 ---- ---+++ modulo1 e modulo2 senta professore dato che io sto usando i miei moduli e ho ricopiato le funzioni nel modulo4.c volevo sapere se davano problemi quando lei li compilava visto che li compila insieme ai suoi.. -- Comment added by Users.TizianoFranchi on 04 Jun 2005 ---- ---++++ RE: modulo1 e modulo2 Probabilmente sì ... proverò a linkare con l'opzione *-z muldefs* in modo da far accettare definizioni multiple delle funzioni (il sistema dovrebbe scegliere la prima ovvero la vostra) -- Comment added by Users.AndreaSterbini on 04 Jun 2005 ---- ---+++ leaks modulo3 professore, ho visto in linea i nuovi risultati del modulo3, ma non trovo più le pagine dei memory leaks (o meglio, ci stanno ma sono vuote). -- Comment added by Users.AlbertoLaRocca on 04 Jun 2005 ---- ---+++ eliminaTags Per eliminare i tags quali funzioni dobbiamo usare? tutte quelle del modulo2.c? Solo pulisciTestoRe? o solo quelle senza espressioni regolari? Ma soprattutto, lettereDaRimpiazzare e tagsInvisibili chi li mette? decommentiamo quelli che sono presenti nel modulo2.h? Ne creiamo alcuni noi? Oppure evitiamo di usare il modulo2 in questo modulo finale? (mi sa che quest'ultima opzione non sarà molto presa in considerazione, vero? ^^) -- Comment added by Users.EnricoMontesi on 04 Jun 2005 ---- ---++++ eliminaTags Puoi usare o pulisciTestoSemplice o pulisciTestoRE. Per i vettori credo che bisogna fare come per il modulo2, cioè metterli nel proprio main. Non si possono utilizzare quelli che stanno in modulo2.h per il motivo che si diceva in DomandeSulModuloDue. Vedi la risposta del prof: COL CAVOLO! (simboli multipli). -- Comment added by Users.GiovanniColombi on 05 Jun 2005 ---- ---++++ RE: eliminaTags Metti nel tuo main le due liste del modulo 2 e usa pulisciTestoSemplice. -- Comment added by Users.AndreaSterbini on 05 Jun 2005 ---- ---+++ timeout professore volevo sapere quanto tempo dava alle nostre funzioni per l'esecuzione?? -- Comment added by Users.TizianoFranchi on 05 Jun 2005 ---- ---+++ tests per leggiFiles Per fare i tests della funzione leggiFiles necessitiamo di due directory da visitare. Tenendo conto che ovviamente i file da visitare li creiamo noi, potrebbe dirci, professore, i nomi di due directory standard vuote che lei metterà a disposizione dei nostri tests, che le riempiranno con i nostri files di testing? -- Comment added by Users.EnricoMontesi on 05 Jun 2005 ---- ---+++ Directory Ovviamente le dir HAM e SPAM ci saranno!?! -- Comment added by Users.TizianoFranchi on 05 Jun 2005 ---- ---+++ errori nel modulo3.c Professore, nei suoi tests risulta che ho fatto 2 errori nella funzione "leggiTokens" del modulo3.c Dato che questa funzione devo riciclarla per il quarto modulo, si potrebbero avere maggiori informazioni sul modo in cui ha fatto i tests? Dai risultati messi in rete non si capisce che cosa non andava, poiché non si sa che cosa lei ha passato alla mia funzione. -- Comment added by Users.EnricoMontesi on 05 Jun 2005 ---- ---++++ RE: errori nel modulo3.c Il mio codice è on-line, quindi si vede bene cosa ho passato. ------++++ RE: Directory Ovviamente ci saranno le due directory HAM e SPAM. ------++++ RE: pulisciTestoSemplice Ho provato a processare le email di SPAM e HAM per essere sicuro che non aveste problemi: * ho usato il mio codice di modulo1.c e modulo2.c 1 ho letto i files delle directory HAM e SPAM 1 li ho ripuliti con pulisciTestoSemplice (con parametro *max=1*) 1 li ho tokenizzati Tutte le email vengono tokenizzate senza errori -- Comment added by Users.AndreaSterbini on 05 Jun 2005 ---- ---++++ pulisciTestoSemplice Professore, utilizzando i suoi moduli (1 e 2), se passo a pulisciTestoSemplice un testo che contiene un'header, <verbatim> Return-Path: <pmadmin@di.uniroma1.it>, esempio preso dal primo header dell'email SPAM/email1.eml, </verbatim> secondo le specifiche della funzione eliminaTagsHtml, quando poi viene passato a pharseHeader, il valore di quell'header non esiste più, rendendo l'header un BAD_HEADER, errore n 11, ovvero quello che la funzione dei suoi moduli mi ritorna dopo che gli passo un testo che è stato analizzato, nell'ordine, da <verbatim> leggiFile(), pulisciTestoSemplice(), tokenizzaEmail() </verbatim> -- Comment added by Users.AlessandroGrottoli on 05 Jun 2005 ---- ---+++ ops L'header di esempio è <verbatim> Return-Path: <pmadmin@di.uniroma1.it> </verbatim> . non so se si vedrà correttamente, comunque, dopo Return-Path:, c'è un'indirizzo email, tra un minore e un maggiore...:-) -- Comment added by Users.AlessandroGrottoli on 05 Jun 2005 ---- ---++++ pulisciTestoSemplice Prof. io non riesco a tokenizzare le email. Uso il suo codice. Il problema è che pulisciTestoSemplice pulisce anche gli headers e in alcuni casi elimina il valore dell'header facendo poi restituire a tokenizzaEmail BAD_HEADER. Ad esempio in HAM/email1.txt.eml ci sono diversi hyperlink che causano valori dell'header vuoti. A questo punto credo che bisogna passare a pulisciTestoSemplice solo il body dell'email. Però per come è stato impostato il progetto non mi sembra proprio la scelta più azzeccata... Prof. potrebbe darmi qualche indicazione? -- Comment added by Users.GiovanniColombi on 05 Jun 2005 ---- ---+++ pulisciTestoSemplice ...e invece no, una soluzione c'è, ma non so quanto possa essere valida...sbaglio o nel modulo 1 c'è una funzione che estrae gli headers, se venissero eliminati prima di passare l'email a pulisciTesto e tokenizza, sarebbe un'errore? -- Comment added by Users.AlessandroGrottoli on 05 Jun 2005 ---- ---++++ pulisciTestoSemplice Non passare gli headers a tokenizzaEmail direi che è un errore. La mia ipotesi è invece quella di passare solo il body a pulisciTestoSemplice e poi passare headers---+ body pulito a tokenizzaEmail. Tanto tokenizzaEmail non considera eventuali porcherie negli header e quindi tokenizza solo le parole (saltando ad esempio < e >). -- Comment added by Users.GiovanniColombi on 06 Jun 2005 ---- ---+++ errori nelle directory.,, Professore, come ci dobbiamo comportare nel caso in cui vi siano degli errori riguardanti le directory? O meglio, lei farà test in cui le directory ad esempio sono vuote, oppure delle quali non si ha il permesso di accesso, ecc.??? -- Comment added by Users.DavidBenedetti on 06 Jun 2005 ---- ---+++ scrittura dizionario C'è un nome standard ke dobbiamo dare al file da scrivere contenente il dizionario? -- Comment added by Users.DavidBenedetti on 06 Jun 2005 ---- ---++++ pulisciTestoSemplice Forse non hai capito, in quasi tutte le email, in vari campi degli headers, è possibile trovare un'header che contenga un'indirizzo email, tra i due simboli incriminati; una volta passato un testo di quel genere alla pulisciTestoSemplice, elimina l'indirizzo, lasciando solo il contesto dell'header seguiti da spazio e accapo. Poi che vorrebbe dire che tokenizzaEmail non considera le porcherie degli headers :-O ???????????????? ma quale modulo1 hai fatto tu?????? dentro a tokenizzaEmail, si una la pharseHeader che DEVE conoscere la corretta sintassi degli headers... -- Comment added by Users.AlessandroGrottoli on 06 Jun 2005 ---- ---+++ problema della pulisciTestoSemplice Non vorrei sembrare un po' troppo disfatista, ma il fatto che la pulisciTestoSemplice dia tutti questi problemi a 2 giorni dalla consegna (ammetto che non l'ho ancora provata, io, poiché sto facendo i tests sulle altre funzioni) crea non pochi problemi. Da quanto aveva scritto il prof pensavo che il problema non sussistesse più...evidentemente non era proprio così (mi sembra strano che tutti quanti abbiano scritto senza provare i nuovi files messi dal professore). A questo punto vorrei chiedere una cosa. Dato che la pulisciTestoSemplice era l'obiettivo di un altro modulo (che fu strage, tra l'altro ^^) e che tutto sommato non va a scombussolare la parte di programmazione di questo modulo, non si potrebbe evitare di utilizzarla? E' vero che può sembrare una richiesta un pochino da svogliato...ma i tempi si stringono (e l'8 iniziano scritti ed orali di varie altre materie...). -- Comment added by Users.EnricoMontesi on 06 Jun 2005 ---- ---+++ Problemi TokenizzaEmail a me veramente utilizzando le funzioni del prof non funziona bene neanche la tokenizza email, non tokenizza tutto il testo...a voi? -- Comment added by Users.SimoneMurzilli on 06 Jun 2005 ---- ---++++ pulisciTestoSemplice Nei miei post ho scritto esattamente la stessa cosa (cioè che alcuni valori degli headers , gli indirizzi email, vengano eliminati da pulisciTestoSemplice lasciando solo il tipo e facendo tornare a tokenizzaEmail BAD_HEADER). Riguardo a tokenizzaEmail intendevo dire che primaParola cmq elimina tutto ciò che non è di interesse per il filtro e che forse di roba da pulire negli headers ce n'è ben poca. Infine ho espresso la mia idea che non passare gli headers a tokenizzaEmail è sbagliato (mi era sembrato di capire che tu chiedessi un parere a riguardo). Il modulo1 che ho fatto io sta online con gli altri. Non è un gran che e per questo uso quello del Prof. -- Comment added by Users.GiovanniColombi on 06 Jun 2005 ---- ---+++ tokenizzazione emails Non è di molto buon auspicio che abbiamo tutti questi problemi a due giorni dalla consegna e sui moduli passati...!!! PS = Ce li ho ank'io i vostri stessi problemi!!! -- Comment added by Users.DavidBenedetti on 06 Jun 2005 ---- ---+++ tokenizzazione emails In effetti l'applicazione della pulisciTestoSemplice trasforma le email, e fa resituire a tokenizzaEmail BAD_HEADER...ke pasticcio... -- Comment added by Users.DavidBenedetti on 06 Jun 2005 ---- ---+++ tokenizzazione emails L'idea di passare a tokenizzaEmail solo il body dell'email non è molto sbagliata, ma mi sorge allora spontanea una domanda: ke l'abbiamo fatti a fare i primi due moduli se poi dobbiamo praticamente rielaborare il loro lavoro??? Ke senso ha allora utilizzarli comodamente su questo modulo con due semplici chiamate a pulisciTestoSemplice e tokenizzaEmail??? Professore, ci illumini!!!!!!! -- Comment added by Users.DavidBenedetti on 06 Jun 2005 ---- ---+++ IDEA! Perché non scriviamo 1000 email da soli (ke rispettino le specifiche del primo e secondo modulo) e poi le processiamo con il quarto modulo??? Sul numero di email da scrivere scherzavo, però è quello ke sto facendo per vedere se almeno il resto mi funziona.....ve lo consiglio...poi, certo, ognuno la pensi come vuole!!! :) -- Comment added by Users.DavidBenedetti on 06 Jun 2005 ---- ---++++ Tokenizzazione email Secondo me, non c'è nessun problema, l'accoppiata pulisciTesto e tokanizzaEmail, nel mondo reale <verbatim> [cit] </verbatim> , non funziona. Siccome al modulo 4 non deve interessarsi della corretta sintassi di un'email, le chiamate sono giuste, l'unica cosa da fare sarebbe, migliorare l'accoppiata PULISCI/TOKANIZZA , o eliminare gli "errori" dalle email per fare la correzione...io per vedere se tutto mi funziona ho sostituito <pre> i < e i > contenuti negli headers con le virgolette. </pre> PS David non hai chiuso il pre... -- Comment added by Users.AlessandroGrottoli on 06 Jun 2005 ---- ---+++ %RED% *AGGIORNAMENTO di files.zip* %FINE% Mi ero sbagliato a controllare i files, ora ho tolto gli headers sbagliati ed ho re-zippato i files. Trovate la versione giusta dei file di esempio in attachment al ModuloQuattro -- Comment added by Users.AndreaSterbini on 06 Jun 2005 ---- ---+++ ehm... Veramente non l'ho nemmeno aperto!!! :) -- Comment added by Users.DavidBenedetti on 06 Jun 2005 ---- ---+++ YAHOO!!! (non il motore di ricerca!) Ora sembra funzionare tutto a dovere...GRAZIE PROFESSORE!!! -- Comment added by Users.DavidBenedetti on 06 Jun 2005 ---- ---+++ Directory Per ogni errore riguardanti le directory<verbatim>(EMPTY, UNREADABLE, MISSING</verbatim>, ritornamo UNKOWN_ERROR? -- Comment added by Users.AlessandroGrottoli on 06 Jun 2005 ---- ---++++ scrittura dizionario David qual'è il terzo argomento della funzione processDirs? ;-) con il caldo iniziamo a fondere il cervello... -- Comment added by Users.AlessandroGrottoli on 06 Jun 2005 ---- ---+++ test FILE_EMPTY, FILE_UNREADABLE...e scrittura file dizionario Professore, come possiamo fare i test per questi errori? Mi sembra di aver capito ke lei metterà i famosi file "file-empty" e "file-unreadable", ma come possiamo fare i test su RESULT_OK e su un errore se stanno tutti in una stessa directory (cioè, sia file 'buoni' ke file 'cattivi')??? Per quanto riguarda l'errore FILE_UNWRITABLE penso non sia invece troppo difficile.....Ah, una cosa: quando uso la processDirs(...) mi sposto nelle directory indicate impostandole come directory di lavoro. Quindi il file dizionario viene creato nell'ultima directory in cui mi trovo. Questo può creare problemi? Oppure bisogna scrivere il file in una directory ben precisa??? GRAZIE! -- Comment added by Users.DavidBenedetti on 06 Jun 2005 ---- ---+++ sempre per i test... Quando facciamo i test, quali sono le directory ke dobbiamo indicare alla processDirs(...), professore? Ad esempio: "HAM", oppure "D:\UnPercorsoDaLeiScelto\HAM" ??? -- Comment added by Users.DavidBenedetti on 06 Jun 2005 ---- ---+++ sempre per i test... Nei test, proprio perché ad ogni chiamata a leggiFiles(...) mi sposto su una nuova directory di lavoro (e cioè quella dove leggiFiles analizza i files), devo ripristinare la directory di lavoro di partenza??? -- Comment added by Users.DavidBenedetti on 06 Jun 2005 ---- ---+++ processDir Ma cosa intende per legge e tokenizza tutte le email contenute in hamdir e spam dir? -- Comment added by Users.AlessandroGrottoli on 06 Jun 2005 ---- ---+++ processDirs(...) Nel senso ke kiama leggiFiles, prima passandogli hamdir e poi spamdir. In questo modo la leggiFiles(...) legge tutti i file contenuti nella directory in entrata, li pulisce, li tokenizza, e poi, per ognunom, carica il dizionario con i token estratti dal file (email)!!! -- Comment added by Users.DavidBenedetti on 06 Jun 2005 ---- ---+++ Valori delle email Ma a voi che valore di SPAM/HAM vi restituisce per le email? a me per tutte quelle SPAM 1.0 e per le ham 0.0...mi sembra un pochino strano... -- Comment added by Users.AlessandroGrottoli on 06 Jun 2005 ---- ---+++ Valori delle email Ke intendi Alessandro? I valori del dizionario scritti poi nel file da scriviDizionario(...) o il peso uscente da calcolaPesoEmail(...)??? -- Comment added by Users.DavidBenedetti on 06 Jun 2005 ---- ---++++ Valori delle email Peso complessivo di ogni singola email... -- Comment added by Users.AlessandroGrottoli on 06 Jun 2005 ---- ---++++ Valori delle email esattamente, per tutte le email SPAM il peso è 1.0, per le HAM è 0.000000000000000000000000000000000000000122263...è vero che i valori del dizionario di SPAM e HAM sono presi da queste email, ma mi sembra un pochino strano che siano tutti uguali i risultati...ho ricontrollato tutto svariate volte... -- Comment added by Users.AlessandroGrottoli on 06 Jun 2005 ---- ---+++ Valori delle email... A me sembra abbastanza logico ke siano così i risultati...proprio xké i pesi delle chiavi sono stati stabiliti da quelle stesse email di cui poi vai a stabilire il peso...cmq per carità...può anke nn essere....... -- Comment added by Users.DavidBenedetti on 06 Jun 2005 ---- ---+++ errore inspiegabile... Professore, ho notato un errore inspiegabile nel fare i test. Per fare i test su RESULT_OK di calcolaDizionario(...) utilizzo leggiFiles(...) per caricare i dizionari (da passare poi alla funzione suddetta). Quando faccio i test sul primo e secondo argomento va tutto bene: legge, pulisce e tokenizza con successo tutti i file senza fare storie. Come però faccio il test di RESULT_OK sul terzo argomento, legge tutti i file di HAM, ma come prova a tokenizzare il primo file di SPAM da errore, ma non un errore di quelli definiti (almeno capivo che ca...volo avesse), ma un errore che blocca il processo e ke windows interrompe senza dare (ovviamente, come sua abitudine) una spiegazione. Mi sto scervellando da ore senza capire x quale arcano motivo per due volte consecutive NON DA ALCUN ERRORE, e poi di punto in bianco se ne esce con un ERRORE ASSURDO...lei ha una qualke idea di cosa potrebbe provare tale comportamento altamente anomalo??? -- Comment added by Users.DavidBenedetti on 07 Jun 2005 ---- ---+++ errore inspiegabile... provare = provocare!!! scusi! -- Comment added by Users.DavidBenedetti on 07 Jun 2005 ---- ---+++ X David Gli errori peggiori che può dare windows sono 2, uno è dato da una fantastica finestra che si apre dicendoti che c'è stato un errore e chiedendoti se vuoi inviarlo alla Microsoft...questo tipo di errore in realtà non è altro che il fantastico "segmentation fault"...che windows trasforma in questo delirio. Un altro brutto errore che può dare windows, invece, è quello di prendere ed uscire semplicemente dal programma, senza dire nulla. Questo può succedere quando finisce la memoria o in altre occasioni improbabili che la Microsoft non ha calcolato. Per quanto riguarda il fatto che funzioni solo le prime due volte, è perché evidentemente al terzo passaggio che fai accade qualche caso particolare che il tuo programma non gestisce (magari una costruzione particolare dell'albero o altro), oppure più semplicemente se non deallochi bene la memoria, potresti banalmente averla finita. -- Comment added by Users.EnricoMontesi on 07 Jun 2005 ---- ---+++ x Enrico... Grazie Enrico...Ora il mio programma ha generato altri errori assurdi. Fino a ierisera, compilando con i MIEI moduli e lanciando sia la sola processDirs su un main a parte ke i test (esclusi i test per processDirs) funzionava tutto benissimo.....mi accorgo di dover fare i test di processDirs (e lì c'è stato un esodo dal cielo verso casa mia!) e li faccio...ma, a sorpresa: NON FUNZIONA---+ UN CAKKIO!!! Cioè, i test delle funzioni vanno, ma quando arrivo ai test della calcolaDizionario, poi leggiFiles, e ancora processDirs mi succede, da quanto ho capito, ke mi si alloppa il programma...e non solo. Se adesso faccio partire la processDirs da sola, mi da BUFFER_TOO_SMALL la tokenizzaEmail appena prova a tokenizzare la prima email HAM.....cosa alquanto strana visto ke il modulo I non l'ho proprio cambiato...e nemmeno le email sono cambiate!!!!!Mi sa ke proverò con i moduli del prof...!!! -- Comment added by Users.DavidBenedetti on 07 Jun 2005 ---- ---+++ Risposte ------++++ RE: sempre per i test... I test vengono eseguiti in una directory nuova in cui sono presenti: * i files file-unreadable, file-unwritable ecc... * le due directory HAM e SPAM con le email * lì va creato il file del dizionario o altri files temporanei -- Comment added by Users.AndreaSterbini on 07 Jun 2005 ---- ---+++ sempre per i test... Quindi la directory che devo passare per i test (a leggiFiles o processDirs è semplicemente "HAM", giusto professore??? -- Comment added by Users.DavidBenedetti on 07 Jun 2005 ---- ---+++ nomi dei file fondamentali Ho una domanda abbastanza importante (visto tra l'altro che non è rimasto molto tempo per consegnare): Tutti gli errori sulle directory li contiamo come se fossero errori su file (visto tra l'altro che sotto Linux le directory sono file)? Per fare un esempio, in assenza di directory HAM, teniamo conto che si sta parlando dell'errore FILE_MISSING o dell'errore UNKNOWN_ERROR? -- Comment added by Users.EnricoMontesi on 07 Jun 2005 ---- ---+++ dove va usato pulisciTestoSemplice? A me sembra che l'unica posizione possibile per pulisciTestoSemplice sia in leggiFiles, dopo ogni tokenizzazione dei files estratti dalla directory passata. Qualcuno di voi ha in mente altre posizioni? Più che altro perché, dato che il mio pc sembra refrattario all'uso della libreria pcre.h, non posso fare le prove con la pulisciTestoSemplice. Standardizziamo quindi la sua posizione, evitando così spiacevoli problemi in fase di testing? -- Comment added by Users.EnricoMontesi on 07 Jun 2005 ---- ---+++ timeout La domanda rimane sempre la stessa!!!quanto tempo ha una funzione per terminare correttamente??lo chiedo perchè questo modulo è un pò più lento rispetto a quelli precedenti -- Comment added by Users.TizianoFranchi on 07 Jun 2005 ---- ---+++ Consegna del modulo3 Ho visto che nella form di consegna viene anche richiesto di inviare il file modulo3.c. Qualcuno può spiegarmi il perchè di questa richiesta? -- Comment added by Users.MassimilianoNatale on 07 Jun 2005 ---- ---++++ Consegna del modulo3 Alcune funzioni del modulo 3 devono essere modificate per poter essere utilizzate nel modulo 4. Ad es. la inserisciValore prima accettava solo valori compresi tra 0 e 1, adesso deve accettarne anche di più grandi. -- Comment added by Users.AndreaMantoni on 07 Jun 2005 ---- ---+++ dubbio sugli includes Per usare le funzioni del modulo X e' sufficiente che includiamo il file "moduloX.h"? -- Comment added by Users.AndreaMantoni on 07 Jun 2005 ---- ---+++ Dizionario vuoto Bisognerebbe introdurre un altro codice d'errore da far ritornare alle funzioni del modulo 4 se il dizionario passatogli e' vuoto... Ad es. nella scriviDizionario sono indeciso se fargli ritornare EMPTY_FILE o NO_MORE_ELEMENTS in questa evenienza. -- Comment added by Users.AndreaMantoni on 07 Jun 2005 ---- ---+++ Consegna del modulo 3 E non solo!!!Anke le funzioni ke manipolano la struttura del dizionario (se l'hai cambiata per l'ordine delle kiavi) devono essere cambiate!!! -- Comment added by Users.DavidBenedetti on 07 Jun 2005 ---- ---+++ email e moduli del professore.... Professore, ho linkato i suoi moduli per l'operazione di pulitura e tokenizzazione dei files ke ha pubblicato....ma ho notato ke alcuni di essi creano problemi anke con i suoi moduli.....!!! -- Comment added by Users.DavidBenedetti on 07 Jun 2005 ---- ---+++ Consegna del modulo 3 Cioè che significa??? Non ci sto capendo---+ nulla. Io ci ho messo il modulo che avevo già inviato nella precedente consegna. Che vuol dire ciò che tu affermi (David Benedetti) ? -- Comment added by Users.MassimilianoNatale on 07 Jun 2005 ---- ---+++ modulo 3 e vecchi moduli Beh, la riconsegna del modulo3.c può divenire seriamente un problema nel momento in cui i tests su tale modulo siano andati molto male. La riconsegna credo non sia dovuta tanto al fatto di dover cambiare alcune funzioni (io non ne ho cambiata nessuna...quando devo utilizzare numeri superiori a 1.0 utilizzo "modificaValore" invece di "inserisciValore"...e credo che questa fosse l'idea del professore) tanto più che io non ho cambiato praticamente nulla, ma quanto nel fatto che dopo aver visto i tests del modulo3.c uno può correggere gli errori commessi. Questo perché il modulo4.c utilizza alcune funzioni del modulo3.c che non possono essere implementate con quelle del professore, dato che il prof non sa quale struttura dati avete utilizzato, quindi non può usare le proprie funzioni con i vostri dizionari. Questo lo obbliga (e obbliga noi) a dover utilizzare le funzioni del nostro modulo3.c ...ma ovviamente sapendo come sono andati i tests del modulo3.c possiamo correggere il modulo (tra l'altro sono abbastanza convinto che ci sia una piccola inesattezza nei tests, come ho già scritto nei topic appositi, che fa perdere qualche punto). -- Comment added by Users.EnricoMontesi on 07 Jun 2005 ---- ---++++ RE: timeout Finora ho usato 5 o 10 secondi, ma posso aumentare se serve. -- Comment added by Users.AndreaSterbini on 07 Jun 2005 ---- ---+++ timeout mi farebbe un piacere prof perchè mi sono accorto che la processDirs e quasi tutti i test ci mettono un pò, sui 12-15 secondi a seconda del numero di email..intorno a un secondo a email!!grazie -- Comment added by Users.TizianoFranchi on 07 Jun 2005 ---- ---+++ calcolaDizionario(): per quanto riguarda i token Nella funzione calcolaDizionario() basta esplorare uno dei due dizionari (HAM o SPAM) per sapere quali sono TUTTI i token da considerare? O può capitare che per alcuni token la voce è presente soltanto in uno dei 2 dizionari (e dunque bisogna esplorarli entrambi?). Faccio un esempio: io esploro solo il dizionario HAM e per ogni voce trovata vado a cercare il valore della stessa chiave però presente nel dizionario SPAM. Però mi viene il dubbio che ci siano voci presenti UNICAMENTE in uno soltanto dei dizionari. -- Comment added by Users.MassimilianoNatale on 08 Jun 2005 ---- ---+++ calcolaDizionario Ci saranno voci presnti in HAM ma non in SPAM e viceversa, quindi devi controllare entrambi i dizionari. -- Comment added by Users.EnricoMontesi on 08 Jun 2005 ---- ---+++ processDirs() all'interno di processDirs se ho capito bene bisogna creare tre dizionari (quello di ham, quello di spam, e quello finale da far compilare alla calcolaDizionario), quindi io ho usato la nuovoDizionario, ma che dimensione devo passargli? una a mia scelta sufficientemente grande? 1000 elementi va bene? (scusate se la domanda è già stata fatta ed è ripetitiva, ma ogni volta i forum diventano di una lunghezza ingestibile ^_^') -- Comment added by Users.AlbertoLaRocca on 08 Jun 2005 ---- ---++++ processDirs() Io ho messo 50000...basteranno? :-D -- Comment added by Users.AlessandroGrottoli on 08 Jun 2005 ---- ---+++ processDirs() LOL :D <br>cmq hai fatto bene, alla fine tanto vale esagerare, tanto non si tratta di un "commit", ma di un "reserve" (per così dire :P ) mo ci metto un milione :D -- Comment added by Users.AlbertoLaRocca on 08 Jun 2005 ---- ---+++ processDirs() anzi, ci metto proprio 0x7FFFFFFF, il massimo memorizzabile in un int :D tanto è solo un "reserve", no? :) -- Comment added by Users.AlbertoLaRocca on 08 Jun 2005 ---- ---++++ processDirs() ...per come l'ho implementato io no, io le inizializzo subito... :-( -- Comment added by Users.AlessandroGrottoli on 08 Jun 2005 ---- ---+++ consegna modulo3 professore, ma se uno non ha fatto nessuna modifica al modulo3 e a dizionario.h non c'è bisogno che li riconsegna, no? -- Comment added by Users.AlbertoLaRocca on 08 Jun 2005 ---- ---+++ come non detto, ho visto che la consegna del modulo3 e del dizionario è necessaria -- Comment added by Users.AlbertoLaRocca on 08 Jun 2005 ---- ---+++ risultati modulo 4 ora che il prof. è fuori Roma (almeno così è scritto nella pagina iniziale) quand'è che avremo i risultati del modulo 4? non dovremo mica aspettare fino a luglio!? -- Comment added by Users.AlbertoLaRocca on 10 Jun 2005 ---- ---+++ X Alberto mmm...eh...ehm...credo proprio di si... -- Comment added by Users.EnricoMontesi on 11 Jun 2005 ---- ---+++ Aspettando.. si scongiura.. dico solo una cosa.. ALMENO 18!!!(per la serie chi si accontenta gode) visto che ho perso(PIACEVOLMENTE) svariate ore di sonno... abbi pietà di noi.. poveri studenti.. ..come sempre Cordiali Saluti -- Comment added by Users.DavideFacente on 11 Jun 2005 ---- ---+++ RE: risultati modulo 4 Come minimo ... :-) No, me ne occupo anche qui in "trasferta" al mare coi bambini ... :-) -- Comment added by Users.AndreaSterbini on 12 Jun 2005 ---- ---++++ risultati modulo 4 ...la moglie sicuramente ci vorrà molto bene per questo...^^ -- Comment added by Users.EnricoMontesi on 15 Jun 2005 ---- ---+++ risultati modulo 4 Mi sa che ha dato priorità alla moglie :( -- Comment added by Users.MassimilianoNatale on 25 Jun 2005 ---- ---++++ risultati modulo 4 come dargli torto? ^^ comunque entro il 5 luglio (incluso) sapremo... (rattle-rattle-rattle! O___O) -- Comment added by Users.AlbertoLaRocca on 25 Jun 2005 ---- ---++++ RE: risultati modulo 4 Ho pubblicato una primissima bozza con i primi TestsModuloQuattro. -- Comment added by Users.AndreaSterbini on 26 Jun 2005 ---- ---++++ RE: risultati modulo 4 Ed ecco la prima versione _completa_ dei TestsModuloQuattro -- Comment added by Users.AndreaSterbini on 19 Jul 2005 --- %COMMENT{type="thread"}% #LaForm -- Users.AndreaSterbini - 20 May 2005
E
dit
|
A
ttach
|
Watch
|
P
rint version
|
H
istory
: r172
<
r171
<
r170
<
r169
<
r168
|
B
acklinks
|
V
iew topic
|
Ra
w
edit
|
M
ore topic actions
Topic revision: r172 - 2005-08-21
-
AndreaSterbini
Log In
or
Register
Labprog2eo Web ...
Labprog2eo Web
Labprog2eo Web Home
Users
Groups
Index
Search
Changes
Notifications
Statistics
Preferences
User Reference ...
User Reference
ATasteOfTWiki
TextFormattingRules
TWikiVariables
FormattedSearch
TWikiDocGraphics
TWikiSkinBrowser
InstalledPlugins
ChangeEmailAddress
ChangePassword
ResetPassword
Prenotazioni esami
Laurea Triennale ...
Laurea Triennale
Algebra
Algoritmi
Introduzione agli algoritmi
Algoritmi 1
Algoritmi 2
Algoritmi per la
visualizzazione
Architetture
Prog. sist. digitali
Architetture 2
Basi di Dati
Basi di Dati 1 Inf.
Basi di Dati 1 T.I.
Basi di Dati (I modulo, A-L)
Basi di Dati (I modulo, M-Z)
Basi di Dati 2
Calcolo
Calcolo differenziale
Calcolo integrale
Calcolo delle Probabilitą
Metodi mat. per l'inf. (ex. Logica)
canale AD
canale PZ
Programmazione
Fond. di Programmazione
Metodologie di Programmazione
Prog. di sistemi multicore
Programmazione 2
AD
EO
PZ
Esercitazioni Prog. 2
Lab. Prog. AD
Lab. Prog. EO
Lab. Prog. 2
Prog. a Oggetti
Reti
Arch. di internet
Lab. di prog. di rete
Programmazione Web
Reti di elaboratori
Sistemi operativi
Sistemi Operativi (12 CFU)
Anni precedenti
Sistemi operativi 1
Sistemi operativi 2
Lab. SO 1
Lab. SO 2
Altri corsi
Automi, Calcolabilitą
e Complessitą
Apprendimento Automatico
Economia Aziendale
Elaborazione Immagini
Fisica 2
Grafica 3D
Informatica Giuridica
Laboratorio di Sistemi Interattivi
Linguaggi di Programmazione 3° anno Matematica
Linguaggi e Compilatori
Sistemi Informativi
Tecniche di Sicurezza dei Sistemi
ACSAI ...
ACSAI
Computer Architectures 1
Programming
Laurea Magistrale ...
Laurea Magistrale
Percorsi di studio
Corsi
Algoritmi Avanzati
Algoritmica
Algoritmi e Strutture Dati
Algoritmi per le reti
Architetture degli elaboratori 3
Architetture avanzate e parallele
Autonomous Networking
Big Data Computing
Business Intelligence
Calcolo Intensivo
Complessitą
Computer Systems and Programming
Concurrent Systems
Crittografia
Elaborazione del Linguaggio Naturale
Estrazione inf. dal web
Fisica 3
Gamification Lab
Information Systems
Ingegneria degli Algoritmi
Interazione Multi Modale
Metodi Formali per il Software
Methods in Computer Science Education: Analysis
Methods in Computer Science Education: Design
Prestazioni dei Sistemi di Rete
Prog. avanzata
Internet of Things
Sistemi Centrali
Reti Wireless
Sistemi Biometrici
Sistemi Distribuiti
Sistemi Informativi Geografici
Sistemi operativi 3
Tecniche di Sicurezza basate sui Linguaggi
Teoria della
Dimostrazione
Verifica del software
Visione artificiale
Attivitą complementari
Biologia Computazionale
Design and development of embedded systems for the Internet of Things
Lego Lab
Logic Programming
Pietre miliari della scienza
Prog. di processori multicore
Sistemi per l'interazione locale e remota
Laboratorio di Cyber-Security
Verifica e Validazione di Software Embedded
Altri Webs ...
Altri Webs
Dottorandi
Commissioni
Comm. Didattica
Comm. Didattica_r
Comm. Dottorato
Comm. Erasmus
Comm. Finanziamenti
Comm. Scientifica
Comm Scientifica_r
Corsi esterni
Sistemi Operativi (Matematica)
Perl e Bioperl
ECDL
Fondamenti 1
(NETTUNO)
Tecniche della Programmazione 1° modulo
(NETTUNO)
Seminars in Artificial Intelligence and Robotics: Natural Language Processing
Informatica generale
Primo canale
Secondo canale
II canale A.A. 10-11
Informatica
Informatica per Statistica
Laboratorio di Strumentazione Elettronica e Informatica
Progetti
Nemo
Quis
Remus
TWiki ...
TWiki
Tutto su TWiki
Users
Main
Sandbox
Home
Site map
AA web
AAP web
ACSAI web
AA2021 web
Programming web
AA2021 web
AN web
ASD web
Algebra web
AL web
AA1112 web
AA1213 web
AA1920 web
AA2021 web
MZ web
AA1112 web
AA1213 web
AA1112 web
AA1314 web
AA1415 web
AA1516 web
AA1617 web
AA1819 web
Old web
Algo_par_dis web
Algoreti web
More...
Labprog2eo Web
Create New Topic
Index
Search
Changes
Notifications
RSS Feed
Statistics
Preferences
P
P
View
Raw View
Print version
Find backlinks
History
More topic actions
Edit
Raw edit
Attach file or image
Edit topic preference settings
Set new parent
More topic actions
Account
Log In
Register User
Questo sito usa cookies, usandolo ne accettate la presenza. (
CookiePolicy
)
Torna al
Dipartimento di Informatica
E
dit
A
ttach
Copyright © 2008-2025 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki?
Send feedback