 | |
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 |
nuovo progetto : consigli Clicca QUI per vedere il messaggio nel forum |
ziplo |
Aiuto...........
allora avete visto il progetto????????
ma scusate una cosa, io sarò ignorante però non capisco come si fa ad inserire dei file html per controllarli...o forse non ho capito bene la consegna...cioè non ho proprio capito se io devo inserire i file o se il possibile utente li deve inserire??????
grazie se rispondete |
Echoes |
Bisogna caricarli attraverso degli appostiti metodi. Non è così strano come appare. |
ziplo |
si ma io da dove li prendo questi file html??cioè li carico con dei metodi ma questi metodi dovranno riferirsi a qulache file html???
non capisco davvero.. |
Nikola88 |
il file html in sè è un qualsiasi file html. quando avvii il programma gli dici quale analizzare |
Echoes |
è come fare un "apri file". Cioè bisognerà creare, o utilizzare , un metodo che faccia ad esempio la copia righe del file HTML-> array di stringhe java. e Poi attraverso le stringhe che hai "trasportato" fai tutte le dovute operazioni.. Così ho inteso io questa parte.. |
Nostrills |
si...penso anch'io sia come dice Echoes.... |
kintaro |
:sad: Non lo passerò mai FAP!!! :ueee: |
Echoes |
ok ho trovato la soluzione. Bisogna usare gli stream di input/output. si trova tutto sul libro. -Capitolo stream verso pag 580-.
ps x ziplo: vieni venerdi? alle 10 alle panchine... |
Jaky |
scusami..pagina 580, ma di quale edizione? |
Jaky |
prima edizione:
Gli stream
strem di caratteri
gerarchie reader...
classe file
stream di byte
ecc
questa roba qui no? :D |
Nostrills |
ragazzi secondo voi nel progetto si può usare la classe ArrayList??? Perchè a lezione nn l'abbiamo mai vista ma è nella dotazione standard di java.... |
Echoes |
Originally posted by Nostrills
ragazzi secondo voi nel progetto si può usare la classe ArrayList??? Perchè a lezione nn l'abbiamo mai vista ma è nella dotazione standard di java....
quindi direi di si. Quello che abbiamo visto a lezione è stato tutto molto -troppo?- didattico, ma niente di veramente pratico. Adesso nel progetto è bisogna usare le cose VERE.... |
Nostrills |
ok thanks...allora cercherò di usare tutto quello che posso |
Giuffre |
Secondo me bisogna usare il Polimorfismo su tutte le classi perchè è nostro amico. Inoltre readByte va usato per leggere il file in UNICODE. (Standard UNI-ISO9001)
Per controllare quanti tag ci sono secondo me si dovrebbe utilizzare Arrays.sort() che ti riordina il vettore in base a quanti tag ci sono
Per capire che tipo di tag io direi un StringTokenizer che taglia la stringa sui caratteri < e >
By I Fantastici 4 (4 su 1000 si salveranno :twisted: :twisted: ) |
Echoes |
Originally posted by Giuffre
.....Secondo me bisogna usare il Polimorfismo su tutte le classi perchè è nostro amico.....
Secondo me invece avete fumato... |
Nostrills |
Originally posted by Giuffre
Per controllare quanti tag ci sono secondo me si dovrebbe utilizzare Arrays.sort() che ti riordina il vettore in base a quanti tag ci sono
Per capire che tipo di tag io direi un StringTokenizer che taglia la stringa sui caratteri < e >
Non ho ben capito perchè vuoi usare un Arrays.sort() che da quanto ricordo riordina l'array attraverso il compareTo per controllare quanti tag ci sono....???
sullo StringTokenizer mi trovi d'accordo... |
Nikola88 |
Credo voglia dire che se li ordini in ordine alfabetico fai prima con i controlli di validità |
Nostrills |
si..potrebbe essere una soluzione ma secondo me è meglio se ti crei un contatore in ogni sottoclasse di tag che ogni volta che crea un oggetto aumenta.. |
Nikola88 |
Mi sembra una buona idea!! Adesso ci penso |
Jaky |
scusate...qualcuno che utilizza vecchie edizioni del libro, sa dov'è quella pagina internet di pighizzini in cui ci sono tutti gli errori di battitura? |
ziplo |
Ma secondo voi perchè consiglia di pulire la stringa dagli eventuali spazi bianchi nella classe Tag ?
grazie |
Supernick |
Questo non lo so...ma mi sorge un'altro dubbio........se all'interno del documento HTML c'è ad eseempio una frase con scritto " 9<10 (nove minore di dieci)"........devo stare attento anche che non conti il minore all'interno della frase come tag........o non è necessario???
grazie-
PS: Si Echoes, venerdì alle 10 ci son pure io :D |
Lorux |
raga ma nel testo dove spiega come creare la classe tagstack dice "A parte le segnature dei metodi push e pop `e lasciata piena libert`a sull’implementazione
di questa classe, a patto di non utilizzare la classe
java.util.Stack o equivalenti."
ora,nn so come funziona la java.util.stack ma io ho creato una stack come sapevo farla in C,cioè con ogni elemento della stack che ha all'interno un riferimento all'elemento precedente..
ora,là dice "a patto di non utilizzare la classe
java.util.Stack o equivalenti.",questo equivalenti comprende anche la stack che ho creato da me o posso usarla tranquillamente? |
Echoes |
Penso che lo stack tuo lo puoi usare tranquillamente. Lui specifica limitazioni solo nella java.util.Stack ,quindi è una soluzione accettabile .... |
Jaky |
scusate, avrei bisogno di un chiarimento:
io ho la prima edizione del libro, per quanto rigurda gli stream ci sono solo 20 pagine...anche nel vostro libro sono così poche?
non è che ci sia molto sul come prelevare le stringhe da un file..ho trovato solo readLine() della classe BufferedReader =( è proprio questo quello che bisogna utilizzare?
spero che qualcuno mi risponda..grazie :S |
Jaky |
Originally posted by ziplo
Ma secondo voi perchè consiglia di pulire la stringa dagli eventuali spazi bianchi nella classe Tag ?
grazie
non lo capisco nemmeno io :? |
Echoes |
Originally posted by Jaky
scusate, avrei bisogno di un chiarimento:
io ho la prima edizione del libro, per quanto rigurda gli stream ci sono solo 20 pagine...anche nel vostro libro sono così poche?
non è che ci sia molto sul come prelevare le stringhe da un file..ho trovato solo readLine() della classe BufferedReader =( è proprio questo quello che bisogna utilizzare?
spero che qualcuno mi risponda..grazie :S
Io avevo pensato di utilizzare appunto readLine() e mettere il contenuto del file HTML in un array di stringhe o (in caso sia più funzionale) in una stringa unica.. |
Lorux |
io ho usato .read() del fileinputstream che legge un carattere alla volta e mette tutto in una stringa sola,poi lavoro su quella |
jonny86 |
Secondo me la soluzione migliore è quella di lorux, perchè se no rischiate che se il file HTML è scritto tutto su un unica riga vi viene l'errore di overflow di lettura (cioè cercate di mettere in una stringa tutto il documento con readLine())
Poi penso che malchiodi consigli di pulire da eventuali spazi bianchi perchè se no per memorizzare gli attributi e i loro valori poi vi incasinate... cioè se avete un tag così:
<a href="pippo" target = "_blank"> lui ha detto che è valido ma se non eliminate gli spazi a fianco dell'uguale poi quando usate StringTokenizer per spezzettare i vari attributi siete nei casini (infatti vi darebbe come token: href="pippo",target,=,"_blank" mentre dovrebbe essere href="pippo",target="_blank".
E poi un consiglio.... non utilizzate StringTokenizer per verificare se il tag è aperto e chiuso bene, bastano 2 charAt nelle posizioni giuste. |
Jaky |
Originally posted by jonny86
Secondo me la soluzione migliore è quella di lorux, perchè se no rischiate che se il file HTML è scritto tutto su un unica riga vi viene l'errore di overflow di lettura (cioè cercate di mettere in una stringa tutto il documento con readLine())
non credo che i prof abbiano previsto questa cosa, spesso ci facciamo + problemi noi di quanti se ne siano fatti loro nel pensare questo programma.....bisognerebbe chieder conferma.. |
il_gege |
Scusatemi una cosa, io sono MOLTO ignorante in java.
Di conseguenza vi pongo il mio problema:
Allora, usando il seguente codice
code: FileReader doc = new FileReader("page.html");
BufferedReader bfr = new BufferedReader(doc);
html = bfr.readLine();
mi viene ritornata solo la prima riga del sorgente; come mai?
Parte seconda:
code: FileReader doc = new FileReader("page.html");
BufferedReader bfr = new BufferedReader(doc);
html = bfr.read();
Invece così mi ritorna il numero di byte, ok, ma se poi io li volessi tramutare in stringhe? |
Nostrills |
Originally posted by il_gege
Allora, usando il seguente codice
code: FileReader doc = new FileReader("page.html");
BufferedReader bfr = new BufferedReader(doc);
html = bfr.readLine();
mi viene ritornata solo la prima riga del sorgente; come mai?
ciao
allora è giusto secondo me usare il readLine() del BufferedReader...però per leggere tutto il file devi mette il readLine() dentro un while con come condizione il fatto che nn legga stringhe nulle (il che significa che il file è stato letto tutto).. |
il_gege |
Ok perfetto!
Grazie mille...
però se io volessi usare un array di stringhe, come faccio a sapere quanto è lungo il buffer??
Così almeno se ho un vettore riesco a facilitare i movimenti per andarmi a cercare i caratteri.. |
Nostrills |
non saprei..magari prova a darti una guardata alle API's di BufferedReader che magari trovi qualche metodo utile... |
Nikola88 |
Invece di complicarti la vita leggi linea x linea e "attaccala" a una stringa di supporto |
Nostrills |
si potrebbe essere una buona soluzione anche quella.... |
il_gege |
Vabbè, ormai quella parte lì l'ho passata, visto che comunque sono riuscito a muovermi...
Ora debbo capire come muovermi nella classe Tag.
Penso che sia quella la peggiore... |
Nikola88 |
Secondo me è una delle più facili. Classifica il Tag e lo manda "giù" alla relativa sottoclasse in base al tipo |
Supernick |
Scusate io ho provato uan cosa....
questo è il codice
import javax.swing.*;
import java.lang.*;
import java.io.*;
public static void main (String [] args)throws IOException{
String Name;
Name=JOptionPane.showInputDialog("Inserisci il nome del file");
FileReader frd = new FileReader(Name);
BufferedReader bfr = new BufferedReader(frd);
String html;
while ((html=bfr.readLine()) != null)
System.out.println(html);
bfr.close();
frd.close();
System.exit(0);
}
}
Devo per forza lanciare l'eccezzione IOException, altrimenti non mi compila...qualcuno sa dirmi il perchè? |
il_gege |
Metti che non trova il file... |
Supernick |
giustamente...comunque purtroppo ho scoperto che va messo nel costruttore della classe HTMLPage.....
solo che così non mi funziona
cioè compila ma quando scrivo il nome del file non mi da niente come output........sigh...e spesso mi si riavvia il pc....... |
ziplo |
ma creando il metodo astratto updateStatistics nella classe tag anche la classe diventa astratta e non puo quindi essere istanziata? |
giron |
scusate la domanda fuori luogo ma non volevo aprire un thread per una domanda stupida.
Per fare il progettino di gennaio a quale appello sul sifa dobbiamo iscriverci? |
ziplo |
puo essere che ha sbagliato la consegna??????
se c'è un metodo astratto nella classe tag allora cone si fa a istanziare un elemento della classe essendo questa astratta????????????????????????????? |
Jaky |
anche io mi sono posto lo stesso problema...però poi nel programma, non hai bisogno di instanziare direttamente Tag(anche perchè non puoi) ma, attraverso il metodo getSpacializedTag, gli passi come argomento la stringa <bla bla bla> , e istanzia uno dei 4 tag =)
io la vedo così..spero di non dire boiate |
Nikola88 |
Essendo il metodo getSpec... statico puoi chiamarlo senza instanziare la classe. |
Black D. |
Salve a tutti, una domanda su getSpec..
Oltre alla classe Tag che contiene il metodo astratto updateStatistics (e che la rende astratta e quindi non istanziabile) anche le sottoclassi Structural, Link, Presentation e Other presentano lo stesso metodo astratto. Quindi il metodo getSpec...come fa a restituire un'istanza corrispondente alla sottoclasse (se nemmeno queste possono essere istanziate?). Scusate la domanda forse stupida, ma non ne vengo a capo. |
Jaky |
solo Tag è astratta e non può essere istanziata, ma le sottoclassi si. in esse devi fornire l'implementazione del metodo astratto.....percui il metodo nn dovrà essere dichiarato astratto dentro le sottoclassi |
Black D. |
Che fesso, e si che era anche scritto sul progetto.
Allora tutto (o quasi) si risolve.
Gazie 1000 jaky |
Pupino |
Avrei una domanda...
Il costruttore della classe Tag deve istanziare un oggetto della classe nel caso in cui la stringa passata descriva un tag ben formato, altrimenti sollevare un'eccezione.
Il metodo getSpecializedTag(String t) analizza la stringa passata come argomento, nel caso la stringa contenga la descrizione di un tag ben formato tale metodo crea un'istanza di una sottoclasse di Tag (adeguata in base alla descrizione del tag).
E' corretto allora se io nel costruttore richiamo il metodo getSpecializedTag? Senza quindi istanziare un oggetto della classe Tag ma istanziando direttamente un oggetto della sottoclasse adeguata...
Perchè non capisco il senso di dover avere un oggetto di tipo Tag, quando per poter analizzare il documento, contare i tag ecc ho bisogno di oggetti che mi rappresentano la tipologia dei tag... |
Nikola88 |
LA comodità di avere un oggetto di un sub-Tag è comodo perchè chiami una sola volta updateStatistics e in base alla classe in cui è istanziato l'oggetto va a prendere il suo update e ad aggiornare statisticscollector. In questo modo non devi fare ogni volta la differenza tra i vari casi e chiamare 6 diversi updateStatistics |
Jaky |
Originally posted by Pupino
Perchè non capisco il senso di dover avere un oggetto di tipo Tag, quando per poter analizzare il documento, contare i tag ecc ho bisogno di oggetti che mi rappresentano la tipologia dei tag...
Bè ma java e i linguaggi orientati agli oggetti, proprio su questo si basano:
l'avere una classe generica Tag, dove specifici variabili, costruttori e metodi, è comodissimo, perchè questi non dovranno essere riscritti in tutte le sottoclassi, ma saranno ereditati e/o richiamarli tramite "super".
Nelle sottoclassi specificherai solo quello che le distingue le une dalla altre =)
Ciao |
Jaky |
Originally posted by Nikola88
....e chiamare 6 diversi updateStatistics
perchè 6? :? sn 4 le sottoclassi |
Nikola88 |
ho detto un numero a caso... quando postavo nn avevo il testo sottomano |
miky_stardust |
scusate la domanda :oops: ma non ho capito una cosa: quando si lancia l'eccezione MalformedTagException, il programma deve continuare la sua esecuzione fino alla fine elencando tutti gli errori che ha trovato nel testo, oppure bloccare il programma? :? |
Jaky |
nono..devi segnarlalo....lo dice alla pagina 8 nella classe ValidationResult =)
per ora non ho idea di come però :S
ciao |
miky_stardust |
eh infatti, quando lancio un eccezione il programma mi si blocca... dovrò capirlo anche io! grazie mille jaky ^__^ |
ziplo |
come si fa a impedire di istanziare una classe(richiesta delle sottoclassi di tag) ???cioè se noi creiamo la classe dovremo creare un costruttore ma è impossibile impedire di istanziare la classe se la costruisci...aiuto!|!!!!!!!!!!!!!! |
xbx12 |
ma scusate, nella classe Tag nel metodo statico getSpecTag. Ma io,dopo aver fatto i controlli necessari, posso creare(dentro la classe Tag qundi) un tag per esempio strutturale?
aiuto! |
Black D. |
Ps per tutti.
Se avete problemi nella creazione del TagStack, sul libro (2°edizione) c'è spiegato bene come procedere ad implementare una generica classe Stack di oggetti (nel nostro caso Tag). E' da pag 518 a 521. E' molto ben fatta. |
Jaky |
Originally posted by ziplo
come si fa a impedire di istanziare una classe(richiesta delle sottoclassi di tag) ???cioè se noi creiamo la classe dovremo creare un costruttore ma è impossibile impedire di istanziare la classe se la costruisci...aiuto!|!!!!!!!!!!!!!!
"impediere di istanziare una classe" significa che devi impedire che venga creato una istanza di quella determinata classe, es.
il getSpecializedTag( string t) istanzia una delle sottoclassi, a seconda appunto della stringa che gli passi
se passi <a href...> istanzia un linkTag
se passi <h1> un StructuralTag ecc
poi però nel costruttore delle varie sottoclassi, devi dire per quali motivi non è possibile creare l'oggetto...es se dentro <a href...> nn ci sono attributi con rispettivi valori...o se il tag strutturale ha come numero < 1 o >6 ,bisogna lanciare l'eccezione MalformedTag
spero di aver spiegato =) |
Jaky |
Originally posted by xbx12
ma scusate, nella classe Tag nel metodo statico getSpecTag. Ma io,dopo aver fatto i controlli necessari, posso creare(dentro la classe Tag qundi) un tag per esempio strutturale?
aiuto!
non è che la crei dentro...semplicemente dici "istanzia un oggetto di questo tipo" , poi il crearlo ci pensa la sottoclasse |
ufficiale86 |
Ciao ragazzi qualcuno x caso nel progetto ha usato i tipi enumerabili???Se si dove???grazie ciaociao:D |
ufficiale86 |
Ciao ragazzi qualcuno x caso nel progetto ha usato delle variabili di tipi enumerativi???Se si dove???grazie ciaociao:D |
Black D. |
Credo che il vero problema sia come estrapolare i tag (o meglio le stringhe che diventeranno tag) da Htmlpage.
Una volta creato lo stream inizia a diventare complicato ricavarsi i tag da una riga del documento html (o dalla riga unica rappresentante tutte le righe del documento). Se si usa StringTokenizer si rischia di estrapolare dati non corretti. Per es. se si imposta come delim lo spazio ' ' ci si incasina con i token ricavati. Se invece si inserisce come delim '>' e '<' i token ricavati non é detto che siano tag, potrebbero essere testi tra i tag.
Voi come pensate di risolvere il problema?
a me é venuto in mente di far analizzare una stringa tramite un ciclo for, memorizzare la posizione dei simboli < e > in un array di tipo int e successivamente con substring estrapolare i tag usando le posizioni memorizzate.
Un po' complicato ma credo che funzioni (devo provare). |
Nostrills |
Originally posted by Black D.
Se invece si inserisce come delim '>' e '<' i token ricavati non é detto che siano tag, potrebbero essere testi tra i tag.
far analizzare una stringa tramite un ciclo for, memorizzare la posizione dei simboli < e > in un array di tipo int e successivamente con substring estrapolare i tag usando le posizioni memorizzate.
Un po' complicato ma credo che funzioni (devo provare).
il problema del fatto che < e > possano essere parte del testo e non apertura e chiusura dell'intestazione del tag rimane... |
Jaky |
è la parte + easy secondo me..saranno 15 righe di algoritmo a dir tanto,
consiglio di spulciarvi bene i metodi ( ne bastano 4) presenti dentro la classe String, lì c'è tutto il necessario =) poi se nel tuo caso funziona..benone...le strade sono molte..l'importante è ottenere il risultato ;)
Io non capisco perchè è necessario pulire un tag tipo
<a href = "www.unimi.it"> cioè..perchè????
ok non mi costa nulla farlo...ma a quale scopo? |
xbx12 |
la classe Tag è astratta?se si mi potreste dare una breve spiegazione...perchè nel progetto c'è scritto "poter istanziare un elemento della classe TAG"!e se fosse astratta nn lo potremmo fare,o sbaglio? |
Jaky |
è gia stato spiegato nelle pagine precedenti, consiglio a tutti di leggerle prima di fare domande già poste.
cmq..."poter istanziare bla bla" si riferisce al metodo getSpecializedTag, che si occupa di istanziare oggetti delle varie sottoclassi, infatti come dici tu essendo astratta non puoi istanziarla, ma con getSpe lo puoi fare |
Supernick |
il problema del fatto che < e > possano essere parte del testo e non apertura e chiusura dell'intestazione del tag rimane
Ho gia controllato a riguardo, per fare il"<" e ">" l'HTML utilizza dei codici diversi....quindi < e > sono solo nei tag |
xbx12 |
quindi è astratta la classe Tag? SI o NO (SENZA SPIEGAZIONI!!!!!!) |
Black D. |
@ xbx12 si; la classe Tag é astratta; le sottoclassi no.
@jaky effettivamente ripulire una stringa tipo
<a href = "www.unimi.it"> non lo trovo molto sensato.... anche perché senza spazi il nome del tag non sarebbe più a bensi tutta la stringa (in quanto il nome del tag deve terminare con uno spazio oppure / oppure >. Quindi definire lo stesso tag risulterebbe + complicato.....almeno credo! |
Echoes |
ma nella definizione dello StatistcCollector è meglio mettere un array o piu variabili per definire il campo che memorizzerà i TagStrutturali? |
Jaky |
Originally posted by Black D.
@ xbx12 si; la classe Tag é astratta; le sottoclassi no.
@jaky effettivamente ripulire una stringa tipo
<a href = "www.unimi.it"> non lo trovo molto sensato.... anche perché senza spazi il nome del tag non sarebbe più a bensi tutta la stringa (in quanto il nome del tag deve terminare con uno spazio oppure / oppure >. Quindi definire lo stesso tag risulterebbe + complicato.....almeno credo!
boooh... |
Jaky |
Originally posted by Echoes
ma nella definizione dello StatistcCollector è meglio mettere un array o piu variabili per definire il campo che memorizzerà i TagStrutturali?
io fatto array |
Nostrills |
Originally posted by Supernick
Ho gia controllato a riguardo, per fare il"<" e ">" l'HTML utilizza dei codici diversi....quindi < e > sono solo nei tag
bene un problema in meno... |
Black D. |
@ jaky
Ripensandoci ripulire la stringa sarebbe comodo DOPO aver recuperato il nome. La sottostringa a partire dallo lo spazio dopo il nome fino alla fine (eccetto>) della stringa risulterebbe comodo averla senza spazi, cosi da recuperare valore e attributo velocemente conoscendo solo la posizione dell' "=" (ovviamente se ci sono questi valori).
La classe String mette a disposizione direttamente un metodo che ripulisce una stringa da tutti gli spazi vuoti.... |
Black D. |
Inoltre controllando le API direttamente dal sito ufficiale http://java.sun.com/reference/api/index.html
ho trovato nella classe String un altro metodo che permette MOLTO VELOCEMENTE di ricavarsi tutti i tag da una stringa (x HTMLPAGE). Basta saper usare le regex (regular expression). |
Jaky |
nn so manco cosa siano -_- |
Black D. |
Dai un occhio al metodo split. Potrebbe essere molto utile! In questi gg provo e poi vi dirò |
Lorux |
raga io ho finito il prgoetto,la documentazione secondo voi come deve essere impostata? |
Jaky |
Originally posted by Black D.
@ jaky
Ripensandoci ripulire la stringa sarebbe comodo DOPO aver recuperato il nome. La sottostringa a partire dallo lo spazio dopo il nome fino alla fine (eccetto>) della stringa risulterebbe comodo averla senza spazi, cosi da recuperare valore e attributo velocemente conoscendo solo la posizione dell' "=" (ovviamente se ci sono questi valori).
La classe String mette a disposizione direttamente un metodo che ripulisce una stringa da tutti gli spazi vuoti....
anche qui...l'utilità di recuperare il nome del tag? ci sono 4 casi di tag, mica 100.
si ok, per istanziare poi dovrò dirgli il nome del tag..ma non credo che cambi molto dirgli
se nometag= a -->istanziaLikTag
oppure
se il tag inizia così <a || </a --> istanziaLinkTag
mah! |
Jaky |
Originally posted by Lorux
raga io ho finito il prgoetto,la documentazione secondo voi come deve essere impostata?
ti stimo e invidio allo stesso tempo :-D:sad:
boh...chiama malchiodi domani in ufficio e fattelo dire :D, o scrivi mail
visto che hai finito, volevo cheiderti una cosa:
come ti sei comportato con i valori degli attributi dei tag?
hai usato hashtable o qualcosa del genere? sai, per la verifica se c'è il valore o cose così
oppure semplicemente hai detto: se non c'è nulla dopo l'=, allora il tag è malformato..
grazie :)
raga io nn capisco quanti tipi di controlli vadano fatti sui valori degli attributi..
1) se c'è
2) se dentro le virgolette non c'è nulla?
3) se nn han dimenticato delle virgolette?
boooh |
ufficiale86 |
Ciao raga scusate una cosa ma come avete fatto la classe TagStack???x utilizzare i metodi devo usare x forza un oggetto di tipo TagStack...vuoi come avete fatto??grazie mille:D |
Jaky |
basta che, nel momento in cui devi vedere se il documento è bilanciato, ovvero con i metodi dello stack, crei prima un oggetto di tipo TagStack stat= new TagStack();
a quel punto richiamerai i metodi su stat. :) |
Jaky |
Originally posted by Jaky
come ti sei comportato con i valori degli attributi dei tag?
hai usato hashtable o qualcosa del genere? sai, per la verifica se c'è il valore o cose così
oppure semplicemente hai detto: se non c'è nulla dopo l'=, allora il tag è malformato..
grazie :)
raga io nn capisco quanti tipi di controlli vadano fatti sui valori degli attributi..
1) se c'è
2) se dentro le virgolette non c'è nulla?
3) se nn han dimenticato delle virgolette?
boooh
c'è nessuno che sa risp? |
ziplo |
ma scusate una cosa,premetto che io non ho mai programmato quindi se per voi questa domanda è stupida per me puo essere vitale.Io per compilare uso java editor un semplice programmino;ho creato varie classi su file differenti come faccio a farli interagire tra loro nella compilazione?????cioè Tag e StructuralTag e StatisticsCollector ad esmpio?????
grazie |
Jaky |
semplice
ti scarici ECLIPSE :D è il programma per eccellenza per programmare in java. poi importi tutti i file e ti fa automaticamente tutto |
ufficiale86 |
Raga ho 1piccolo problema.......nel metodo validate di HTMLPage ho verifica se il file ke carico ha i tag giusti...però ho usato x ora le stringe(ho verificato se le stringe del file sn giuste e non i tag come oggetti!)....come faccio a creare degli oggetti di tipo Tag nella classe HTMLPage??nn me lo fa fare....sto lavorando con Eclipse e non mi fa fare i nuovi oggetti di tipo Tag.....come avete fatto voi nel metodo getStatistics() della classe HTMLPage a considerare uno ad uno ogni tag e in seguito aggiornare StatisticsCollector???grazie a tutti:D:D:D |
Jaky |
non puoi fare nuovi oggetti di tipo tag, perchè è astratta
per crearli devi fare Tag t = new PresentationTag(String s); |
ufficiale86 |
Originally posted by Jaky
non puoi fare nuovi oggetti di tipo tag, perchè è astratta
per crearli devi fare Tag t = new PresentationTag(String s);
Scusa ma x creare 1nuovo oggetto di tipo PresentationTag come faccio???dove l'hai dichiarato??è 1costruttore strano...nn c'è sulle indicazioni del prof |
ufficiale86 |
Originally posted by Jaky
non puoi fare nuovi oggetti di tipo tag, perchè è astratta
per crearli devi fare Tag t = new PresentationTag(String s);
Scusa ma x creare 1 nuovo oggetto di tipo PresentationTag come faccio???dove l'hai dichiarato??è 1costruttore strano...nn c'è sulle indicazioni del progetto......e poi questo "nuovo" tag dove l'hai creato??scusa ma nn ho capito bene....grazie mille per la disponibilità:D:D |
ufficiale86 |
scusa errore mio!PresentationTag è 1sottoclasse d Tag perdono ho capito male!ora provo dai grazie mille |
ufficiale86 |
Raga scusate ma nella classe HTMLPage come fate e dividere ogni tag che ci sono nel documento HTML intero??come fare a creare i costruttori nuovi dei vari sottotag in quella classe??a me nn me li crea..... |
ziplo |
come si mettono le eccezioni(non le ho capite molto) in HTMLPAge?
cioè se lancio un eccezione o se la intercetto poi posso fare il return?????sono un po bloccato nel metodo validate precisamente......
aiutoooooooooo |
miky_stardust |
Originally posted by ufficiale86
Raga scusate ma nella classe HTMLPage come fate e dividere ogni tag che ci sono nel documento HTML intero??come fare a creare i costruttori nuovi dei vari sottotag in quella classe??a me nn me li crea.....
per dividere i tag devi tagliare la stringa su < e > e poi passarla a getSpec...
i costruttori sono ognuno nella sua classe a seconda del tag (es: il costruttore di LinkTag sarà nella classe LinkTag) ma sarà il getSpec che, a seconda della stringa che gli passi, richiama il costruttore appropriato! |
Black D. |
In pratica (se ho capito) tutto il progetto é ad "incastro".
Si inizia con Tag e i sotto tag, che verranno inizializzati dal metodo statio getSpec...;
Le sottoclassi avranno il metodo "non più astratto" updateStatistic che userà vari contatori (nei costruttori dei sotoTag).
Htmlpage sarà il "contenitore" delle stringhe da passare a getSpec per inizializzare i sottotag, poi updateStatistic dei tag e metodo validate, che userà il Tagstack per verificare se il documento é bilanciato o meno. Poi getStat per aggiornare lo StatisticCollector (con un uso per es. di un array per memorizzare i contatori dei singoli Tag). Infine Validationresult....uff. Più o meno dovrebbe essere cosi....CORREGGETEMI SI HO SCRITTO CRETINATE! |
miky_stardust |
si, anche per me è sostanzialmente cosi!!!
(tranne per l'array dei contatori, a cui non avevo proprio pensato e che avevo risolto con una decina di variabili diverse :shock: ) |
|
|
|
|