Homepage  Il progetto dsy.it è l'unofficial support site dei corsi di laurea del Dipartimento di Scienze dell'Informazione e del Dipartimento di Informatica e Comunicazione della Statale di Milano. E' un servizio degli studenti per gli studenti, curato in modo no-profit da un gruppo di essi. I nostri servizi comprendono aree di discussione per ogni Corso di Laurea, un'area download per lo scambio file, una raccolta di link e un motore di ricerca, il supporto agli studenti lavoratori, il forum hosting per Professori e studenti, i blog, e molto altro...
In questa sezione è indicizzato in textonly il contenuto del nostro forum


.dsy:it. .dsy:it. Archive > Didattica > Corsi A - F > Fondamenti di architettura e programmazione
Pages: [1] 2 3 
[PROGETTO]Log
Clicca QUI per vedere il messaggio nel forum
ska_Gio
oggi si e' tenuta la presentazione del progetto da consegnarsi in data 04/02/04.....h12:00pm
Appena sono arrivato a casa ho cercato di scaricare il testo che secondo le indicazioni doveva trovarsi su infogen.dsi.unimi.it
.....bhe nn lo trovo....o forse e' stato ancora postato.....
POSSIBILE? bha!
A mio parere avrebbe dovuto gia' trovarsi on line.....
almeno per consolidare con esso le informazioni che ci sono state date oggi a lezione!

foolish
Originally posted by ska_Gio
oggi si e' tenuta la presentazione del progetto da consegnarsi in data 04/02/04.....h12:00pm
Appena sono arrivato a casa ho cecato di scricare il testo che secondo le indicazioni doveva trovarsi su infogen.dsi.unimi.it
.....bhe nn lo trovo....o forse e' stato ancora postato.....
POSSIBILE? bha!
A mio parere avrebbe dovuto gia' trovarsi on line.....
almeno per consolidare con esso le informazioni che ci sono state date oggi a lezione!


Off-Topic:
...ho cecato di scricare ...
:D

eh già!!!

aspetta qualche ora che deve mangiare !!!
:D

ska_Gio
foolish cerca di sminuire la mia cultura di base nn credetegli

MuffY
ho controllato anche io adesso..ma non è ancora stato uplodato..cmq oggi lui lo ha mostrato da disco...

Ciao

ska_Gio
Se ancora nn e' on line sarebbe il caso di prorogare la consegna delle stesse ore di ritardo della pubblicazione...se fossero seri....ma evidentemente fanno i fiscali solo solo sui nostri doveri.......
nn e' serio .... poi pretendono che il programma funzioni....

EagleSpirit
è disponibile qua

ska_Gio
grazie mille per la dritta!
:approved:

Rocco.Li
Cosa intende Malchiodi per documentazione ?

- documentazione delle classi in stile javadoc + diagramma UML ?

- a lezione si e' parlato della documentazione ?


grazie.

Armen
Originally posted by EagleSpirit
è disponibile qua


THX

Rocco.Li
Grazie Armen !
Leggendo bene ho poi trovato anche la spiegazione di come scrivere la documentazione.

Non mi sembra poi cosi complicato ad una prima lettura...
...da domani nell'ora di pausa pranzo in ufficio, inizio !
Se va bene entro domenica il progetto e' fatto !
cosi ho tutto il tempo per documentare...

L'esecuzione in gruppo non e' obbligatoria vero ?

Armen
No non penso...
...per quanto riguarda la documentazione...si intende quella spiegata sul libro..

fulminato1
Originally posted by Rocco.Li
Grazie Armen !
Leggendo bene ho poi trovato anche la spiegazione di come scrivere la documentazione.

Non mi sembra poi cosi complicato ad una prima lettura...
...da domani nell'ora di pausa pranzo in ufficio, inizio !
Se va bene entro domenica il progetto e' fatto !
cosi ho tutto il tempo per documentare...

L'esecuzione in gruppo non e' obbligatoria vero ?



ka**o!entro domenica?
non te le gusti neanke le kose!
ingordo!

cmq allora se ho qualke problema poi kiederò a te

foolish
si è abbastanza semplice il progetto... penso che in una mezza giornata è finito.

ma **** ci sono tre settimane di tempo!

comunque fatelo e se trovate dei bug postateli!

ska_Gio
prima classe terminata: abbiamo appena concluso IP.class!!!
e stranamente e' funzionante!!!!!!

citrus
Originally posted by foolish
si è abbastanza semplice il progetto... penso che in una mezza giornata è finito.


aggiudicato allora, foolish lo fa per tutti! :thxthx:

ninjanet84
Perfetto vai foolish and ska_gio:approved:

fulminato1
oggi l'ho guardato bene ankio.
ho iniziato a postarlo su carta e a parte qualke dubbio su qualke metodo, fondamentalmente è una kazzata

Voodoo
Scusate la mia ignorantia, ma visto che qualcuno qui sopra di me ha capito bene come funzia il projectus, potrebbe darmi qualche delucidazione del tipo: 1)l'IP dell'utente bisogna chiederlo all'utente nel prompt, così come le spese? 2)Nel Web Event il link
ipotetico su cui l'utente clicca, il sito che il link rappresenta va chiesto anche quello all'utente?? Così come il nome,ecc, insomma?
O alcune di esse vanno già implementate e basta?
If (dico caxxxte)
voodoo.chiedeDelucidazioni(perfavore!)
chiedo venia x le domande...
ciao a tutti.

ska_Gio
QUELLO CHE HO CAPITO(per ora visto che alcune questioni nn me le sono ancora poste):
1- IP,LINK,COSTO sono da richiedere di inserire....dovrebbe funzionare come se ci fosse una ipotetica applicazione che lavora tra il browser e il programma java...che debba dare, appunto link ip e costo a seconda dei vari eventi....
IN pratica noi dobbiamo inserire l'evento con tutti i campi "generati dall'utente"
da come la vedo io:

TIPO di EVENTO??? ====>link o acquisto?
genare l'evento(link o acquisto) con ora precisa del momento,ed i vari campi da richiedere di inserire....


ps la priorità è un dato abbastanza inutile e si può impostare uguale per tutti gli eventi cmq nn ha molta importanza!

fulminato1
penso proprio di si voodoo, in quale altro modo si possono acquisire quelle informazioni con un applicazione per il prompt?

ska_Gio
QUELLO CHE VOLEVO DIRE ANCH'IO

fulminato1
comunque se trovate qualke altra soluzione postatela

Armen
Una domanda...le eccezioni citate nel costruttore IP (String)...devono esserci anche per il costruttore IP (int, int, int, int)?!?!?

THX

fulminato1
secondo me, come ti ho spiegato ieri, se lo usi secondariamente al costruttore IP(string) possono non esserci; se però li usi come due costruttori separati allora penso proprio di si,forse è anke più soggetto a eccezioni.

Rocco.Li
le eccezzioni vanno su entrambi i costruttori.
se ti istanziano una classe con valori superiori a 255 per ciascun byte , ricordandoci che passiamo un int (32 Bits) che puo rappresentare valori molto piu grandi, devi per forza di cose generare un eccezzione.

Armen
Ok..corretta a classe IP...

IP (int)...1 eccezione
IP (String)...3 eccezioni

ellegi
Originally posted by Armen
Ok..corretta a classe IP...

IP (int)...1 eccezione
IP (String)...3 eccezioni


Ma il testo non dice che per il costruttore IP (int) serve un'eccezione !!!
io non l'ho messa !!!!

fulminato1
e se si verifica un eccezione?ti si blocca il programma

ellegi
Originally posted by fulminato1
e se si verifica un eccezione?ti si blocca il programma


Si ma nel testo non è richiesto !!! :)

fulminato1
ma qualkosa in più puoi farlo!non sei vincolato/a assolutamente dal testo.
quello ke rikiede il testo è il minimo, la sufficienza.
da buon programmatore/trice sta a te risolvere il resto dei problemi.

ellegi
Originally posted by fulminato1
ma qualkosa in più puoi farlo!non sei vincolato/a assolutamente dal testo.
quello ke rikiede il testo è il minimo, la sufficienza.
da buon programmatore/trice sta a te risolvere il resto dei problemi.


Prima di tutto sono uno !! :D :D :D :twisted:
Allora potrei aggiungere delle classi che mi servirebbero per la classe Event senza problemi.
:approved: bene grazie

ninjanet84
cmq ragà fate attenzione a cercare di evitare di mettere nel progetto cose che non abbiamo fatto nel programma perchè oggi quando ho chiesto l dario se potevo gestire le entrate degli eventi con una pila ha storto un pò il naso perchè mi ha detto che cmq non lo avevamo fatto nel corso. Non mi ha impedito di farlo ma mi ha detto che poi nella discussione mi avrebbe chiesto vita morte e miracoli della pila!!!:shock:

ellegi
Originally posted by ninjanet84
cmq ragà fate attenzione a cercare di evitare di mettere nel progetto cose che non abbiamo fatto nel programma perchè oggi quando ho chiesto l dario se potevo gestire le entrate degli eventi con una pila ha storto un pò il naso perchè mi ha detto che cmq non lo avevamo fatto nel corso. Non mi ha impedito di farlo ma mi ha detto che poi nella discussione mi avrebbe chiesto vita morte e miracoli della pila!!!:shock:



PILA :? :? :?
No no niente cose nuove :-D

fulminato1
Originally posted by ellegi
Prima di tutto sono uno !! :D :D :D :twisted:
Allora potrei aggiungere delle classi che mi servirebbero per la classe Event senza problemi.
:approved: bene grazie



scusa uno!

ellegi
Originally posted by fulminato1
scusa uno!


:asd: niente

Armen
Originally posted by ninjanet84
cmq ragà fate attenzione a cercare di evitare di mettere nel progetto cose che non abbiamo fatto nel programma


...programma di Malchiodi o di Mereghetti!?!? :D :? :shock:

ninjanet84
di entrambi...dico cose che non abbiamo proprio trattato in nessuno dei due corsi...ad esempio la Pila!!!

ska_Gio
oggi abbiamo trattato la seconda classe....
event...... direi a dir poco stancante!!!

Armen
Io sono a WebEvent e ClientEvent...qualche problemino con il costruttore...

httpmum
Scusate qualcuno mi può aiutare...

Ho trovato qualche problema sul costruttore della classe Event(String), soprattutto nell'instanziare l'orario...
Come cav..posso fare???!!!

Grazie mille..

Armen
X l'orario io ho creato una classe ce deriva dalla classe Date dell'util...

citrus
Originally posted by Armen
X l'orario io ho creato una classe ce deriva dalla classe Date dell'util...


magari sbaglierò ma secondo me non è necessario raccogliere la data, spezzarla, creare l'orario ecc... ecc...
c'è un costruttore della classe date che riceve una stringa e a partire da questa genera l'oggetto.
è molto comodo perchè è in grado di interpretare molti formati tra cui quello proposto da malchioldi !!!
(un po' come la classe orario che abbiamo visto con mereghetti)

Armen
Hai ragione, ma poi risulta più scomodo per le eccezioni...
...se ho ben capito tutto è regolato da eccezioni...o no??

citrus
secondo me non è scomodo...
l'eccezione la solleva il costruttore della classe Date,
noi non dobbiamo far altro che raccoglierla nel main....

poi ovviamente le mie sono solo supposizioni, però in teoria il testo dice di seguire le regole della programmazione ad oggetti giusto?
allora che senso avrebbe riscrivere un metodo quando c'è gia una classe che fa la stessa cosa?:D

httpmum
Quale sarebbe questo costruttore....io ho provato con il parse ma mi da errore perchè il metodo ritorna un long, ma io devo inserire la data in una variabile Date...

citrus
Originally posted by httpmum
Quale sarebbe questo costruttore....io ho provato con il parse ma mi da errore perchè il metodo ritorna un long, ma io devo inserire la data in una variabile Date...


il costruttore è Date(String s);
praticamente puoi far così:
Date data=new Date("22 Dec 2003 15:20:21 GMT");

poi come ho detto prima i formati riconosciuti sono più di uno quindi ti conviene comunque consultare la documentazione.

il problema sta nel vedere se malchioldi sarà contento di questa cosa, ma se funziona non vedo proprio perchè non si dovrebbe poter fare! giusto?
voi che ne pensate?

francyghisla
qualcuno sa dirmi per caso se esiste un metodo per sapere quante righe contiene un file?

posso ricavare qualcosa dal metodo length() della classe File che mi torna la grandezza in byte?

grazie mille!

invece per il problema della data, anch'io ho fatto come Citrus, mi sembrava la soluzione più logica e pratica e poi risponde esattamente alle richieste di Malchiodi

citrus
Originally posted by francyghisla
qualcuno sa dirmi per caso se esiste un metodo per sapere quante righe contiene un file?

posso ricavare qualcosa dal metodo length() della classe File che mi torna la grandezza in byte?

grazie mille!

invece per il problema della data, anch'io ho fatto come Citrus, mi sembrava la soluzione più logica e pratica e poi risponde esattamente alle richieste di Malchiodi


per contare le righe di un file puoi semplicemente usare un contatore (non credo ci sia un metodo del genere).
ad ex:
while(in.readLine!=null)
count++;

....
questo ti serve per sapere che dimensione dare all'array giusto?
tra parentesi quella dell'array mi sembra veramente una soluzione poco azzeccata... è vero che in classe non le abbiamo fatte ma con uno stack si può creare una struttura dinamica (quindi senza bisogno che venga dimensionata) che sarà in grado quindi di espandersi.
in questo modo l'utente può continuare a generare eventi senza scriverli ogni volta sul file (che è dispendioso in termini di prestazioni e direi anche poco "elegante").
quando ho chiesto a malchioldi se si poteva fare ha arricciato un po' il naso ma poi ha acconsentito a patto poi di sapere
spiegare cos'è lo stack. mereghetti invece ha appoggiato pienamente l'idea quindi....
oltretutto sono anche semplici (sul libro son fatti benissimo)....
voi che ne pensate?

francyghisla
la soluzione migliore è quella dello stack, ma se non aggrada malchiodi forse è meglio non complicarsi la vita in vista della discussione del progetto.

la tua soluzione è fattibile, però devo far scorrere l'intero file mille volte inutilmente... dopo una lunga pensata la mia mente ha partorito quest'idea: scorro il file una sola volta riga per riga, mi creo un array di appoggio in cui ogni volta copio il contenuto di data[] e reinstanzio data della dimensione precedente+1

non so se sono stata abbastanza chiara, cmq se avete pareri in proposito fatemi sapere!

citrus
ok però la prima volta che crei l'array dovrai pur dargli una dimensione giusto?
come pensi di fare?
per quanto riguarda malchioldi io penso che una cosa del genere dovrebbe essere in fin dei conti apprezzata, alla fine non si fa qualcosa in meno ma casomai qualcosa in più!
e poi non si può mica campare solo con le cose che ci hanno spiegato al corso, bisogna imparare cose nuove giusto?
(poi che voi sappiate alla presentazione del progetto ci sarà anche mereghetti?)
... almeno potrei contare sul suo appoggio....
...
mha...
sono anch'io sul chi va la ma ormai ho usato lo stack e penso che continuerò per questa strada...

speriamo bene!

francyghisla
all'inizio faccio un fantastico array da 1, è stupido ma mi sembra l'unica soluzione con gli array....

penso che Mereghetti non ci sia proprio alla discussione del progetto

FedeLura
Originally posted by citrus
...c'è un costruttore della classe date che riceve una stringa e a partire da questa genera l'oggetto.
è molto comodo perchè è in grado di interpretare molti formati tra cui quello proposto da malchioldi !!!
(un po' come la classe orario che abbiamo visto con mereghetti)


Già, la stessa soluzione che ho pensato io, ma appena compilo la classe Event mi da il seguente errore:

\Log\Event.java uses or overrides a deprecated API. Recompile with -deprecation for details.


Il problema penso che sia il fatto che questo costruttore è stato sostituito nelle ultime versioni di Java dal metodo parse(String s) della classe DateFormat; ho provato quindi a utilizzare suddetta classe (contenuta nel package java.text), ma è veramente un casino, soprattutto perchè riesco a leggere un evento da input, ma non dal file log perchè il formato non coincide. Adesso riproverò, ma se qualcuno ne sa di più non esiti a rispondere!

francyghisla
leggendo il libro i è venuto un dubbio, la classe stack l'hai implementata tu o hai usato quella del libro?

poi mi ricordo che alla spiegazione del progetto Malchiodi ha detto che non bisognava usare package che non avevamo visto a lezione, me lo sono scritto grande come una casa per ricordarmelo!

francyghisla
ma non è un vero e proprio errore, è solo un warning di avvertimento, non pregiudica l'esecuzione del programma, almeno quando lo compili non è contemplato nella lista degli errori, quindi spero che non pregiudichi il funzionamento dell'intero progetto!!

citrus
Originally posted by FedeLura
Già, la stessa soluzione che ho pensato io, ma appena compilo la classe Event mi da il seguente errore:

\Log\Event.java uses or overrides a deprecated API. Recompile with -deprecation for details.

Il problema penso che sia il fatto che questo costruttore è stato sostituito nelle ultime versioni di Java dal metodo parse(String s) della classe DateFormat; ho provato quindi a utilizzare suddetta classe (contenuta nel package java.text), ma è veramente un casino, soprattutto perchè riesco a leggere un evento da input, ma non dal file log perchè il formato non coincide. Adesso riproverò, ma se qualcuno ne sa di più non esiti a rispondere!


il fatto che la classe sia stata segnalata come deprecated non implica che non la si possa usare...
finchè non viene soppressa rimane a disposizione quindi non penso ci siano problemi...


Originally posted by francyghisla
leggendo il libro i è venuto un dubbio, la classe stack l'hai implementata tu o hai usato quella del libro?


ho usato quella di java java.util.Stack;
ma volendo la si può implementare anche daccapo tanto è semplice e poi sul libro è spiegata bene (anzi penso proprio che lo farò!!!)


Originally posted by francyghisla
poi mi ricordo che alla spiegazione del progetto Malchiodi ha detto che non bisognava usare package che non avevamo visto a lezione, me lo sono scritto grande come una casa per ricordarmelo!


non so cosa abbia detto alla presentazione perchè non c'ero, però il file che c'è in rete dice che non si possono usare le classi del package prog fornito con il libro (tranne il prog.io leggo ora!), ma delle altre classi java non dice nulla.

addirittura dice che non è richiesto l'uso di particolari interfaccie grafiche ma il fatto che non sia richiesto non vuol dire che non le si possa usare nonostante in classe non siano state fatte!

francyghisla
ok,allora mi diletterò un po' con lo stack, grazie!

citrus
Originally posted by francyghisla
ok,allora mi diletterò un po' con lo stack, grazie!


guarda che però il rischio di "infastidirlo" effettivamente potrebbe anche esserci....
non vorrei darti dei cattivi consigli.....
se comunque decidi ugualmente di "intraprendere" questa strada possiamo sempre confrontarci, sono a disposizione!

:D

lockit
Originally posted by citrus
il costruttore è Date(String s);
praticamente puoi far così:
Date data=new Date("22 Dec 2003 15:20:21 GMT");

poi come ho detto prima i formati riconosciuti sono più di uno quindi ti conviene comunque consultare la documentazione.

il problema sta nel vedere se malchioldi sarà contento di questa cosa, ma se funziona non vedo proprio perchè non si dovrebbe poter fare! giusto?
voi che ne pensate?


Ok ma la stringa come la costruisci ?

se lo fai con i metodi deprecated di java.util.Date non conviene neanche tanto, tra l'altro anche il costruttore che hai usato tu è deprecato e quando lo stampi te lo modifica anche.

E se usassi GregorianCalendar al posto di Date dite che se la prende il Malchiod ?

avevo anche pensato di usare DateFormat ma la documentazione non corrisponde a quello che succede veramente, cioè non riesco a trovare un modo per visualizzare l'orario senza usare metodi deprecati qualcuno sà dirmi come mai?

API Java:

To format a date for the current Locale, use one of the static factory methods:

myString = DateFormat.getDateInstance().format(myDate);

If you are formatting multiple dates, it is more efficient to get the format and use it multiple times so that the system doesn't have to fetch the information about the local language and country conventions multiple times.

DateFormat df = DateFormat.getDateInstance();
for (int i = 0; i < a.length; ++i) {
output.println(df.format(myDate[i]) + "; ");
}
To format a date for a different Locale, specify it in the call to getDateInstance().

DateFormat df = DateFormat.getDateInstance(DateFormat.LONG, Locale.FRANCE);

You can use a DateFormat to parse also.

myDate = df.parse(myString);
Use getDateInstance to get the normal date format for that country. There are other static factory methods available. Use getTimeInstance to get the time format for that country. Use getDateTimeInstance to get a date and time format. You can pass in different options to these factory methods to control the length of the result; from SHORT to MEDIUM to LONG to FULL. The exact result depends on the locale, but generally:

SHORT is completely numeric, such as 12.13.52 or 3:30pm
MEDIUM is longer, such as Jan 12, 1952
LONG is longer, such as January 12, 1952 or 3:30:32pm
FULL is pretty completely specified, such as Tuesday, April 12, 1952 AD or 3:30:42pm PST.



ciao
grazie

MuffY
Originally posted by lockit
Ok ma la stringa come la costruisci?


Quello che mi chiedevo anche io...i
In paratica penso che per forza debba ricevere in ingresso una stringa fomata da 3 parti separate da "|" e poi tagliarla...
Se no malchiodi non è contento...:D

Quindi?

citrus
Originally posted by MuffY
Quello che mi chiedevo anche io...i
In paratica penso che per forza debba ricevere in ingresso una stringa fomata da 3 parti separate da "|" e poi tagliarla...
Se no malchiodi non è contento...:D

Quindi?



basta che nel main fai tre richieste di ingresso all'utente, costruendo così tre stringhe, poi le unisci separandole con una pipe e infine le passi al costruttore della classe Event.

per quanto riguarda le classi deprecated non vedo davvero quale sia il problema, è solo un avviso che da il compilatore, nient'altro.
la jvm le interpreta comunque correttamente.
per quanto riguarda le modifiche che dici tu (mi riferisco a lockit) non capisco, a me non succede, prova ad usare il formato che propone anche malchioldi (quello GMT per intenderci).
famme sapè

citrus
ps: lockit ti conviene levare il codice che hai postato perchè non si può (a me già l'hanno fatto notare una volta!)....
non vorrei che qualcuno se la prendesse ammale!!!

FedeLura
Originally posted by citrus
...per quanto riguarda le classi deprecated non vedo davvero quale sia il problema, è solo un avviso che da il compilatore, nient'altro.
la jvm le interpreta comunque correttamente.

Già, hai ragione! Non mi ero accorto che il sorgente era compilato lo stesso; thanx x la segnalazione !

citrus
Originally posted by FedeLura
Già, hai ragione! Non mi ero accorto che il sorgente era compilato lo stesso; thanx x la segnalazione !


de nada!
:D

citrus
problemone:
quando ricarico il log da file, come faccio a sapere, leggendo una riga qualsiasi, se questa contiene un WebEvent oppure un clientEvent???
se passo la stringa di un ClientEvent ad un costruttore della classe WebEvent questo mi darà un errore perchè al quarto token non troverà un indirizzo ip valido!!!!!

qualcuno ha qualche idea???

l'ideale sarebbe mettere un altro token all'inizio con valore 1 nel caso si tratti di un WebEvent, 0 nell'altro caso.
a quel punto li si potrebbe distinguere....
però questo esula (che poeta!) dai "binari" che malchioldi ci ha dato.....

postate postate!!!!

lockit
Originally posted by citrus
problemone:
quando ricarico il log da file, come faccio a sapere, leggendo una riga qualsiasi, se questa contiene un WebEvent oppure un clientEvent???
se passo la stringa di un ClientEvent ad un costruttore della classe WebEvent questo mi darà un errore perchè al quarto token non troverà un indirizzo ip valido!!!!!

qualcuno ha qualche idea???

l'ideale sarebbe mettere un altro token all'inizio con valore 1 nel caso si tratti di un WebEvent, 0 nell'altro caso.
a quel punto li si potrebbe distinguere....
però questo esula (che poeta!) dai "binari" che malchioldi ci ha dato.....

postate postate!!!!


malchiodi dice di fare così, anche se poi ci lascia liberi di fare come crediamo meglio, basta che non facciamo meno di quanto richiesto:

2|22 Dec 2003 15:20:21 GMT|CL:descrizione1|pippo|500.0
8|22 Dec 2003 15:20:21 GMT|WE:descrizione2|http://www.dsi.unimi.it|159.149.181.6

I primi tre dati priorità, data, descrizione sono nella classe Event qiundi ti basta vedere cosa c'è nel terzo parametro prima dei :

Originally posted by MuffY
Originally posted by lockit
Ok ma la stringa come la costruisci?



Quello che mi chiedevo anche io...i
In paratica penso che per forza debba ricevere in ingresso una stringa fomata da 3 parti separate da "|" e poi tagliarla...
Se no malchiodi non è contento...

Quindi?


Io non intendevo quella stringa Event(String s) io pensavo che la data era in automatico in base all'orario effettivo in cui accade l'evento invece in quel modo la devi richiedere all'utente, mi sà che userò anchio i deprecati

ciao

Armen
Ok, ma se usi la classe Date con il costruttore generico, x le eccexioni, dovresti gestirle tutte dal main....giusto?!?!

E' per questo che intendevo dire che sarebbe più scomodo...

citrus
Originally posted by Armen
Ok, ma se usi la classe Date con il costruttore generico, x le eccexioni, dovresti gestirle tutte dal main....giusto?!?!

E' per questo che intendevo dire che sarebbe più scomodo...


io le eccezioni delle classi Date e Integer le raccolgo direttamente nel costruttore che le genera.
in questo modo quando si verificano posso lanciare un' ulteriore eccezione specifica costruita da me.
praticamente ho costruito un unica eccezione il cui costruttore prende in argomento la stringa di errore.
così nel main dovrò raccoglierne una sola, sarà poi il metodo ToString dell'eccezione stessa a dare informazioni specifiche sul tipo di errore.

Armen
Ok....le ecc le raccogli nel costruttore...quindi le richiami solo nel main...

scusa ma non mi è molto chiaro il tuo metodo...

citrus
praticamente funziona così:
le classi Date, Integer e Double, se ricevono in argomento una stringa che non può creare l'oggetto, generano degli errori del tipo "illegalArgumentException" o "NumberFormatException" che sono sempre delle eccezioni che riguardano il formato dei dati inseriti dall'utente.
per non dovermi poi ritrovare a gestire mille eccezioni nel main ho creato un'unica eccezione che ho chiamato genericamente "InvalidDataException" che rappresenta tutti quegli errori che commette l'utente nell'inserire i dati.
per poi specificare meglio in quale parte del programma l'utente ha sbagliato ho usato un costruttore che raccoglie in argomento una stringa che descriverà l'errore specifico.
ad esempio se l'utente inserisce una data scorretta lancerò l'eccezione in questo modo:
throw new InvalidDataExceptio("Data sbagliata!");
così nel main mi basterà raccolgiere solo questa eccezione e nel ramo catch richiamerò semplicemente il metodo ToString() che stamaperà a video l'errore che voglio io!
il problema delle classi date, integer e double come dicevo prima è che lanciano già per conto loro delle eccezioni (il che mi rompe le balle) quindi non faccio altro che raccoglierle e sostituirle con la mia eccezione.
ad esempio:
try{
price=Double.parseDouble(stk.nextToken());
}catch(NumberFormatException e){
throw new InvalidDataException("Attenzione! e' stato inserito un valore non valido nel campo \"prezzo\"!");
}

così alla fine mi troverò a gestire un unica eccezione!
(ovviamente ci sono mille strade però a me questa è sembrata quella più comoda per così il codice del main rimane pulito e lo sbattimento rimane suddiviso tra i vari metodi)

Armen
Ok, ora ho capito...scusa ma con le eccezioni faccio fatica a carburare...

Cmq non ora (ho sonno), ma domani provo a darci un'occhiata, poi ti dico come ho deciso di fare...

PS ...hai usato lo stesso anche per gestire i valori errati per la creazione dell'IP?!?! 0<x<255

citrus
sissignore, tutto quello che riguarda formati di dati errati lo gestisco con un unica eccezione...
...
adesso però vado in busta anch'io (ho un sonno bestia)
a domani
ciao!

gabry_deejay
Originally posted by citrus
sissignore, tutto quello che riguarda formati di dati errati lo gestisco con un unica eccezione...
...
adesso però vado in busta anch'io (ho un sonno bestia)
a domani
ciao!


perchè non vieni in Silab?????magari con un floppy pieno di classi?....:D

fulminato1
Off-Topic:
scusate l'OT, qualkuno di voi mi manderebbe un pm con i testi degli es ke mereghetti a fatto all'esercitazione?grazie a tutti

foolish
Originally posted by fulminato1
Off-Topic:
scusate l'OT, qualkuno di voi mi manderebbe un pm con i testi degli es ke mereghetti a fatto all'esercitazione?grazie a tutti


le puoi scaricare da qua.

è un pdf fatto dal mereghetti per chi non è potuto venire mercoledì oopure per quelli che semplicemente lo volevano.
;)

foolish
per quanto riguarda la scrittura su file che classe utilizzate?
metodi... ecc ecc.

questa è una piccola rogna!!

fulminato1
grazie foolish!

MAÐ Dragon
Scusate l'ignoranza, qualcuno può dirmi cosa devo usare per creare il file... leggere dal file e scriverci dentro?
nn ho capito una mazza di quello fatto a lezione!
Non ho capito se usare la classe file, o i metodi FileInputManager/FileOutputManager

Non mi serve la Bibbia solo alcuni versetti! Grazie!

francyghisla
Per leggere dai file servono le classi BufferedReader e FileReader, che forniscono un fantastico metodo per leggere il file riga x riga.

Analogamente le classi BufferedWriter e File Writer per scrivere sul file.

La domanda che pongo io, invece è come diavolo posso fare per cancellare il contenuto del file quando devo riscriverci sopra! Non riesco a trovare nessun metodo utile... e se proprio cancellassi il file e lo ricreassi poi da capo? troppo dispendioso di risorse?

MAÐ Dragon
grazie per la info.
proverò con questi metodi!

gabry_deejay
Allora....sto abbastanza sclerando......un aiutino sulla Classe Event!


Quindi secondo me......
Faccio un array
poi me lo tokenizzo
poi assegno le tre variabili di istanza ogni singola cella dell'array
E poi per le conversioni uso il ValueOf.......giusto?


Citrus......stasera ti mando un PM con una rischiesta mollllto particolare:D

citrus
Originally posted by francyghisla
Per leggere dai file servono le classi BufferedReader e FileReader, che forniscono un fantastico metodo per leggere il file riga x riga.

Analogamente le classi BufferedWriter e File Writer per scrivere sul file.

La domanda che pongo io, invece è come diavolo posso fare per cancellare il contenuto del file quando devo riscriverci sopra! Non riesco a trovare nessun metodo utile... e se proprio cancellassi il file e lo ricreassi poi da capo? troppo dispendioso di risorse?


no la domanda difficile è come fare per non cancellare il contenuto del file!
ogni volta che apri uno stream in scrittura verso un file questo viene automaticamente cancellato!
e anche qui riguardo al progetto c'è confusione, nel senso che all'inizio dice che i nuovi eventi devono essere aggiunnti in cima al file, poi invece dice che il file deve essere cancellato.
io alla fine ho creato un metodo overwrite (semplicissimo perchè basta connettersi al file per cancellarlo) e uno write che aggiunge i nuovi eventi senza cancelare gli altri.
per quest'ultimo è più uno sbattimento perchè bisogna usare un file temporaneo di appoggio.....

comunque ho visto che non è necessario usare le classi BufferedReader ecc... ma è pemresso usare il package prog.io (non tutto solo le classi nella cartella io) ...

citrus
Originally posted by gabry_deejay
Citrus......stasera ti mando un PM con una rischiesta mollllto particolare:D


ok ma non ci sarò fino a domani pomeriggio...
ti risponderò poi....
:D

francyghisla
bhè, per scrivere puoi sempre aprire il file in modalità append (non chiedermi ancora come si faccia esattamente ma sono sicura che si possa fare) che fa in modo di puntare alla fine del file e fare tutte le operazioni di aggiunta da li!

i nuovi eventi da aggiungere vanno aggiunti in cima solo nell'array (o nello stack come hai fatto tu) del Log creato, il file una volta letto non lo devi più usare se non nei metodi write(), reload(), backup()... dove è espressamente richiesto un'operazione sui file!

Armen
Originally posted by citrus
comunque ho visto che non è necessario usare le classi BufferedReader ecc... ma è pemresso usare il package prog.io (non tutto solo le classi nella cartella io) ...


Sicuro???

citrus
cito dal file pubblicato sul progetto:

"man mano che vengono aggiunte nuove righe a un log, queste vengono inserite all’inizio del file, spostando le righe rimanenti in avanti di una posizione."

e poi ancora:

"void write(): metodo che scrive il contenuto del log nel file corrispondente, cancellando i contenuti precedenti"

non si capisce nulla.....
siccome avevo già fatto il metodo che appende i dati ormai me lo tengo e faccio anche quello che sovrascrive!!!

citrus
Originally posted by Armen
Sicuro???


cito nuovamente il testo dell'esrecizio perchè ormai non sono più sicuro di niente:

"E’ invece espressamente richiesto di non utilizzare package non standard di Java (si possono quindi utilizzare java.util, java.io e così via), con l’unica eccezione package prog.io incluso nel libro di testo per gestire l’input da tastiera e l’output a video."

francyghisla
però se si pensa sul piano pratico l'unico modo per aggiungere eventi al Log consiste nel metodo void receiveEvent(Event) che va a moldificare solo l'oggetto Log e non tutto il file...

- void receiveEvent(Event): metodo che riceve un generico evento, specificato come argomento, che aggiunge nel log caricato in memoria, SENZA aggiornare la versione salvata su disco. L’evento ricevuto va salvato come PRIMA riga del log, e gli eventi rimanenti devono essere spostati ognuno in avanti di una posizione

Armen
Originally posted by citrus
cito nuovamente il testo dell'esrecizio perchè ormai non sono più sicuro di niente:

"E’ invece espressamente richiesto di non utilizzare package non standard di Java (si possono quindi utilizzare java.util, java.io e così via), con l’unica eccezione package prog.io incluso nel libro di testo per gestire l’input da tastiera e l’output a video."


...boh...pensavo che intendesse solo ConsoleIn(Out)putManager....boh....

citrus
Originally posted by francyghisla
però se si pensa sul piano pratico l'unico modo per aggiungere eventi al Log consiste nel metodo void receiveEvent(Event) che va a moldificare solo l'oggetto Log e non tutto il file...

- void receiveEvent(Event): metodo che riceve un generico evento, specificato come argomento, che aggiunge nel log caricato in memoria, SENZA aggiornare la versione salvata su disco. L’evento ricevuto va salvato come PRIMA riga del log, e gli eventi rimanenti devono essere spostati ognuno in avanti di una posizione


questo non significa però che poi quando lo salvi su file tutto il resto vada cancellato....
mha, alla fine a quanto posso vedere il progetto ha dei margini di libertà che tuttosommato alla fine non sono poi così malvagi..
altrimenti faremmo tutti un lavoro identico....
su certe cose ovviamente però c'è bisogno di più chiarezza perchè non mi sembrerebbe giusto sbagliare il progetto solo per una cattiva interpretazione del testo dell'esercizio....
oltretutto io non ho potuto seguire la presentazione quindi magari molte cose non scritte ma che sono state dette a voce me le son perse....
io punto a fare qualcosa in più piuttosto che qualcosa in meno... tanto tempo alla fine ce n'è...
speriam bene!

citrus
Originally posted by Armen
...boh...pensavo che intendesse solo ConsoleIn(Out)putManager....boh....


in effetti è possibile anche perchè gli stream se non sbaglio li abbiam visti a lezione quindi bisognerebbe usare quelli....

foolish
per non cancellare i file basta trasportarli in un array temporaneo dello stesso tipo che non si vuole cancellare.

per scrivere senza usare le classi prog.io che ci sono state concese per grazia divino è meglio utilizzare non la BufferedReader, bensì la PrintWriter che ha dei metodi MOLTO più duttili delle altre.

API rulez!

francyghisla
ma se tutto il resto l'hai già estraatto con il costruttore e salvato nell'array o nello stack cosa te ne frega in teoria di tenere il contenuto del file?

citrus
Originally posted by foolish
per non cancellare i file basta trasportarli in un array temporaneo dello stesso tipo che non si vuole cancellare.

per scrivere senza usare le classi prog.io che ci sono state concese per grazia divino è meglio utilizzare non la BufferedReader, bensì la PrintWriter che ha dei metodi MOLTO più duttili delle altre.

API rulez!


hai fatto così anche tu???
allora non sono l'unico!

però così per istanziare l'array dovresti prima scorrere il file per contare le righe, poi creare l'array, poi rilleggerti ancora una volta tutto il file per riempirlo.
ci avevo pensato anch'io ma secondo me è più veloce usare un filetemporeaneo

citrus
Originally posted by francyghisla
ma se tutto il resto l'hai già estraatto con il costruttore e salvato nell'array o nello stack cosa te ne frega in teoria di tenere il contenuto del file?



azz hai ragione!!!
il costruttore dell classe log riempie in automatico l'array con i dati del file, quindi aggiungendoli poi si verrebbero a creare degli inutili dupplicati.....

mannaggia!!!!! non ci avevo pensato!!!!
:evil:

francyghisla
fiuu, allora è giusto, pensavo di aver perso eventi a destra e a sinistra!

httpmum
Scusate qualcuno ha già fatto il metodo toString della classe Log?????

No, x' il testo dice: "metodo che crea e ritorna una stringa contenente l'intero log"....allora cosa devo fare: mettere tutto il contenuto del file log in una stringa???

Anche qua non è spiegato bene....come si diceva prima...

Thank's to all!!!:? :?

foolish
Originally posted by httpmum
Scusate qualcuno ha già fatto il metodo toString della classe Log?????

No, x' il testo dice: "metodo che crea e ritorna una stringa contenente l'intero log"....allora cosa devo fare: mettere tutto il contenuto del file log in una stringa???

Anche qua non è spiegato bene....come si diceva prima...

Thank's to all!!!:? :?


si esatto... devi creare una stringa che abbia all'interno il contenuto di tutti gli eventi contenuti nell'array.

Descrizione

[D]ani[J]
ATTENZIONE
La consegna del progetto è per VENERDI 6 FEBBRAIO 2004 non per il 4 come scritto sul testo ! C'e stato probabilmente un errore di battitura della data! (anche perchè il 4 è un mercoledi! )

fulminato1
bhe due giorni in più fanno sempre comodo!

MuffY
domanda su javadoc...ho scitto la documentazione delle classi come spiegato sul libro poi eseguo javadoc sui singoli file ma quando vado ad aprire il file index mi da come classi solo la prima che ho fatto mentre le altre sono disponibili nella directory ma non compaiono nell'index...
Dove sbaglio??

Powered by: vbHome (lite) v4.1 and vBulletin v2.3.1 - Copyright ©2000 - 2002, Jelsoft Enterprises Limited
Mantained by dsy crew (email) | Collabora con noi | Segnalaci un bug | Archive | Regolamento |Licenze | Thanks | Syndacate