Estou em Inicio > ELC117 > quadgen

Apresentação

quadgen é um script bash que recebe um arquivo csv simplificado com horários de disciplinas de um aluno e gera um quadro de horários do mesmo com base em um template. O modo de usá-lo é bem simples. Para quem já esta acostumado com os comandos do unix é barbada ;)

Típica linha de comando do quadgen:

  quadgen horarios.csv template.html > quadro.html

O quadgen gera o quadro de horário na saída padrão para que seja possível utiliza-lo em uma linha mais complexa dentro de outros scripts. Ele possui apenas 2 parâmetros obrigatórios. Sendo que o primeiro é o arquivo CSV simplificado e o segundo é o arquivo de template. Ambos arquivos serão explicados com mais detalhes a seguir. Para consultar o help unix-like o script pode ser invocado assim:

  quadgen --help

Ferramentas

Um resumão do que foi utilizado para criar o script:

Bash

Também conhecido por linha de comando do linux,console,shell, prompt de comando ou simplesmente Ah! Aquela tela preta!. Ele interpreta comandos e executa. Quando se colocam vários comandos num arquivo temos um shell script e o quadgen, é isso. Dentro de um script se pode reaproveitar outros programas e combinar suas funcionalidades.

Awk

Processdor de uma mini-linguagem baseada em expressões regulares e arrays associativos. Foi utilizado para separar os campos do arquivo csv e montar um arquivo .sed

Sed

Programa para editar texto em modo-não iterativo com expressões regulares. Foi usado somente para substituir texto mas a sua potencialidade está muito além disso

CSV simplificado

Vale para o arquivo csv o seguinte:

Exemplo do arquivo:

"NOMEALUNO","CODDISCIPLINA","NOMEDISCIPLINA","DIASEMANA","HORAINICIO","HORAFIM"
"Fulano","ELC1012","ARQUITETURA DE COMPUTADORES","Quarta-feira",16:30:00,18:30:00
"Fulano","ELC1012","ARQUITETURA DE COMPUTADORES","Quinta-feira",14:30:00,16:30:00
"Fulano","ELC1012","ARQUITETURA DE COMPUTADORES","Sexta-feira",14:30:00,16:30:00
"Fulano","STC303","ESTATISTICA","Quinta-feira",16:30:00,18:30:00
"Fulano","STC303","ESTATISTICA","Sexta-feira",16:30:00,18:30:00
"Fulano","FSC135","ELETRICIDADE E MAGNETISMO A,"Segunda-feira",14:30:00,16:30:00
"Fulano","FSC135","ELETRICIDADE E MAGNETISMO A,"Terca-feira",14:30:00,16:30:00
"Fulano","FSC135","ELETRICIDADE E MAGNETISMO A,"Quarta-feira",14:30:00,16:30:00
"Fulano","ELC118","PESQUISA E ORDENACAO DE DADOS","Terca-feira",18:30:00,20:30:00
"Fulano","ELC118","PESQUISA E ORDENACAO DE DADOS","Quarta-feira",18:30:00,20:30:00
"Fulano","ELC117","PARADIGMAS DE PROGRAMACAO","Segunda-feira",16:30:00,18:30:00
"Fulano","ELC117","PARADIGMAS DE PROGRAMACAO","Terca-feira",16:30:00,18:30:00

Templates

Os templates (modelos) servem para garantir a flexibilidade no formato de saída do quadro de horários. É basicamente um arquivo texto com marcações do tipo ##TAG## onde serão inseridos dados de disciplinas do aluno.

Tags Válidas

Exemplo de um template html:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<META NAME="generator" CONTENT="http://txt2tags.sf.net">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
</HEAD><BODY BGCOLOR="white" TEXT="black">
<FONT SIZE="4">
</FONT></CENTER>

<H2>Quadro de Horários de ##NOME_ALUNO##</H2>
<TABLE CELLPADDING="4" BORDER="1">
<TR>
<TH>Horário</TH>
<TH>Segunda</TH>
<TH>Terça</TH>
<TH>Quarta</TH>
<TH>Quinta</TH>
<TH>Sexta</TH>
<TH>Sabado</TH>
</TR>
<TR>
<TD>08:30-10:30</TD>
<TD>##08:3010:30Seg##</TD>
<TD>##08:3010:30Ter##</TD>
<TD>##08:3010:30Qua##</TD>
<TD>##08:3010:30Qui##</TD>
<TD>##08:3010:30Sex##</TD>
<TD>##08:3010:30Sab##</TD>
</TR>
<TR>
<TD>10:30-12:30</TD>
<TD>##10:3012:30Seg##</TD>
<TD>##10:3012:30Ter##</TD>
<TD>##10:3012:30Qua##</TD>
<TD>##10:3012:30Qui##</TD>
<TD>##10:3012:30Sex##</TD>
<TD>##10:3012:30Sab##</TD>
</TR>
<TR>
<TD>12:30-14:30</TD>
<TD>##12:3014:30Seg##</TD>
<TD>##12:3014:30Ter##</TD>
<TD>##12:3014:30Qua##</TD>
<TD>##12:3014:30Qui##</TD>
<TD>##12:3014:30Sex##</TD>
<TD>##12:3014:30Sab##</TD>
</TR>
<TR>
<TD>14:30-16:30</TD>
<TD>##14:3016:30Seg##</TD>
<TD>##14:3016:30Ter##</TD>
<TD>##14:3016:30Qua##</TD>
<TD>##14:3016:30Qui##</TD>
<TD>##14:3016:30Sex##</TD>
<TD>##14:3016:30Sab##</TD>
</TR>
<TR>
<TD>16:30-18:30</TD>
<TD>##16:3018:30Seg##</TD>
<TD>##16:3018:30Ter##</TD>
<TD>##16:3018:30Qua##</TD>
<TD>##16:3018:30Qui##</TD>
<TD>##16:3018:30Sex##</TD>
<TD>##16:3018:30Sab##</TD>
</TR>
<TR>
<TD>18:30-20:30</TD>
<TD>##18:3020:30Seg##</TD>
<TD>##18:3020:30Ter##</TD>
<TD>##18:3020:30Qua##</TD>
<TD>##18:3020:30Qui##</TD>
<TD>##18:3020:30Sex##</TD>
<TD>##18:3020:30Sab##</TD>
</TR>
<TR>
<TD>20:30-22:30</TD>
<TD>##20:3022:30Seg##</TD>
<TD>##20:3022:30Ter##</TD>
<TD>##20:3022:30Qua##</TD>
<TD>##20:3022:30Qui##</TD>
<TD>##20:3022:30Sex##</TD>
<TD>##20:3022:30Sab##</TD>
</TR>
</TABLE>

<P></P>

<!-- html code generated by txt2tags 2.3 (http://txt2tags.sf.net) -->
<!-- cmdline: txt2tags template.t2t -->
</BODY></HTML>

Download

O quadgen é distribuído sobre a GPL. Faça o download agora mesmo e comece a gerar os seus quadros de horários personalizados! Crie seus próprios templates!

E para você que fica se perguntando "Como é que fica então o meu horário utilizando o quadgen?" veja um exemplo de quadro aqui


Otimizado para qualquer navegador Documento HTML 4.01 Válido! Documento CSS 2.0 Válido! Powered by txt2tags!

Página atualizada em: Mon May 28 21:13:46 2007