Jump to content

CodificadorHTML


andreiaSilva
 Share

Recommended Posts

tenho esta parte de um enunciado:

"Para facilitar a leitura/escrita de texto em formato HTML, deve ser criada a classe

CodificadorHTML, dotada de um conjunto de métodos estáticos que retornem strings com

tabelas e texto formatado em HTML (incluindo caracteres acentuados, cabeçalhos, etc.).

Deve também ser implementada a classe DescodificadorHTML, dotada de um conjunto de

métodos que permitam descodificar tags HTML, para extracção dos dados do problema e

leitura das matrizes."

e não faço a mínima como fazer.. alguem me pode dar umas dicas??

Link to comment
Share on other sites

Bem, não quero estar aki a agoirar ou nada do genero, mas penso que se por esta altura ainda não tens essas duas classes feitas estás em apuros...

O codificador é muito simples, como foi dito em cima só tens de receber os dados de algum lado e imprimir num ficheiro html...

por exemplo, uma tabela(que penso que é o k keres):

...
Formatter out= new Formatter(new File("caminhodoficheiroquequerescriar"));
out.format("<table>");//abre a tabela
for(int j=0;j<#colunas;j++){
      out.format("<tr>");//abre a coluna dentro da tabela
      for(int i=0;i<#linhas;i++){
             out.format("<td>");//abre a linha dentro da coluna
             out.format(matriz[i][j]);//imprime o valor da matriz dentro da colunaxtabela
             out.format("</td>");//fecha
      }
      out.format("</tr>";//fecha
}
out.format("</table>");//fecha
...

(^ Estou bem consciente que este codigo tem um erro "fatal" que eu ainda vou descobrir - estou em fases de teste - mas assim já tens uma ideia genérica de como funciona o codificador)

Por outro lado, o descodificador é bem mais complexo...

Embora seja demasiado complexo para te estar aki a explicar meticulosamente como funciona, ficam umas dicas de como deves fazer(ou pelo menos como fiz)

existe uma tecnica em java chamada try&catch que define o que fazer quando erros acontecem que normalmente crashariam o programa!

imagina que tentas atribuir um valor a matriz[2][3] sendo que a matriz so tem espaços até [2][2]..normalmente o programa crashava com o erro "arrayoutofbounds", mas com o try&catch podes prever esse erro e defenir o k ele faz em vez de crashar(como por exemplo imprimir uma mensagem de erro e continuar).

Isso funciona no descodificador porque tu podes ler o conteudo da tabela do ficheiro HTML e tentar(try) fazer um parseInt! Se funcionar atribuis á tua matriz no programa senão(catch) dizes para ignorar e tentar a seguinte sequencia de texto no ficheiro!

Tenta ver isso no google ou assim...Espero ter sido util!

Link to comment
Share on other sites

obrigada foste muito util..

sim eu sou k tou em apuros mas tive um cadinho de azar no grupo k me calhou.. desde o inico so eu i outro e k trabalhavamos.. e agr sou so eu.. e dificil.. conseguir alguma coisa.. ainda pa mais não sou nenhuma expert nisto

lol...eu tou mais ao menos na mesma moeda que tu...tou sozinho a fazer o codigo todo porque os meus dois colegas nao sabem nada disto :S

bem... já descobri o que estava mal com o codigo que tinha escrito em cima, faltava fechar o formatter e escrever em que tipo desejava formatar o args(<-- nao interessa tar a explicar o k é isto...ve o codigo corrigido):

...
Formatter out= new Formatter(new File("caminhodoficheiroquequerescriar"));
out.format("%s","<table>");//abre a tabela
for(int i=0;i<#linhas;i++){
      out.format("%s","<tr>");//abre a linha dentro da tabela
      for(int j=0;j<#colunas;j++){
             out.format("%s","<td>");//abre a coluna dentro da linha
             out.format("%s",matriz[i][j]);//imprime o valor da matriz dentro da linhaxcoluna
             out.format("%s","</td>");//fecha
      }
      out.format("%s","</tr>";//fecha
}
out.format("%s","</table>");//fecha
out.close();
...

thera ya go 🙂

esse codigo deverá funcionar!

P.S. vejo que me pediste para te dar um exemplo por PM, mas enviaste a PM antes de responder aqui, o que implica que eu axo que tomas isto como "exemplo" 🙂

Link to comment
Share on other sites

Estas aulas de LAPR1 do ISEP estão a dar cabo do pessoal..... (andreiaSilva)a 16 de Janeiro ainda não tens o codificador feito? Sei que a esta hora já é tarde, mas para a próxima podes-me perguntar....fiz o meu codificador em 2-3 dias porque trabalho durante o dia e só fico com uma ou duas horas ao final do dia para fazer os trabalhos.

Link to comment
Share on other sites

Como eu disse, o codificador é facil de fazer 👍 Eu fiz o meu no domingo, só demorou mt tempo pk o programa não estava bem estruturado para adicionar cenas deste calibre no fim! eu tive de colocar mais uma variavel boolean nos parametros dos metodos para em caso de o utilizador querer imprimir em HTML a main enviar true e actuar de acordo, caso não enviar false e imprimir no ecrã...

foi um bocado complicado, mas nada de mais, que um dia nao chegasse para fazer 😄

Tanto quanto ao que eu sei ela acabou por fazer o codificador com a pequena explicação que eu postei aki... mas não o descodificador, que esse sim éra o mais complicado (embora me demorasse menos tempo lol ) !

Quanto ás aulas de LAPR1, eu adorei mt sinceramente...só não gostei de duas coisas, a obrigatoriedade de presenças(eu trabalho melhor em casa que na escola) e estes "pseudo-castings" que tamos a fazer...temos que apanhar grande seca para fazer uma defesa, que para mim influencia em nada ou quase nada a nota que os professores vão dar no fim...

Como o sistema de avaliações não é claro e explicito( não tens percentagens para tudo), a nota é apenas o quanto o professor "gosta" de ti... e esse gostar foi adquirido ao longo das aulas...a defesa serve apenas para comprovar...

De resto, adorei este projecto lol é isto que quero fazer o resto da vida 🙂

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.