C&L Lua

De Grupo de Engenharia de Requisitos PUC-Rio

(Diferença entre revisões)
(comment4, http://www.thisis50.com/forum/topics/dating-mlm free black men dating online, tfr, http://www.thisis50.com/forum/topics/dating-mlm internet dating greeting, 1016, http://www.thisis50.com/f)
(comment4, http://www.thisis50.com/forum/topics/dating-mlm serious dating sites, =(, http://www.thisis50.com/forum/topics/dating-mlm intimate sex dating, lsgsa, http://www.thisis50.com/forum/topics/d)
Linha 3: Linha 3:
comment4, http://www.thisis50.com/forum/topics/dating-mlm free black men dating online,  tfr, http://www.thisis50.com/forum/topics/dating-mlm internet dating greeting,  1016, http://www.thisis50.com/forum/topics/dating-mlm christian dating never a fee ohio,  arzjv, http://www.thisis50.com/forum/topics/dating-mlm dating in sudan,  sfir, http://www.thisis50.com/forum/topics/dating-mlm dating mlm in US,  %), http://www.thisis50.com/forum/topics/dating-mlm dating mlm,  jigyiw, http://www.thisis50.com/forum/topics/dating-mlm dating do roses,  22272, http://www.thisis50.com/forum/topics/dating-mlm gay twink dating,  366, http://www.thisis50.com/forum/topics/dating-mlm asian dating personals,  iuxfpf, http://www.thisis50.com/forum/topics/dating-mlm microsoft file dating,  wglh, http://www.thisis50.com/forum/topics/dating-mlm glasgow herald dating,  fohjb, http://www.thisis50.com/forum/topics/dating-mlm a dating encyclopedia,  >:-), http://www.thisis50.com/forum/topics/dating-mlm dating ages and laws in alabama,  405323, http://www.thisis50.com/forum/topics/dating-mlm effective online dating,  fjeuy, http://www.thisis50.com/forum/topics/dating-mlm dating a girl w bf,  521, http://www.thisis50.com/forum/topics/dating-mlm adult singles dating ware iowa,  zlut, http://www.thisis50.com/forum/topics/dating-mlm adult dating in scotland south dakota,  ryke, http://www.thisis50.com/forum/topics/dating-mlm all free intimate dating sights,  ejpmh, http://www.thisis50.com/forum/topics/dating-mlm dating protocal for adults,  82255, http://www.thisis50.com/forum/topics/dating-mlm totally free local norway dating site,  idcv,
comment4, http://www.thisis50.com/forum/topics/dating-mlm free black men dating online,  tfr, http://www.thisis50.com/forum/topics/dating-mlm internet dating greeting,  1016, http://www.thisis50.com/forum/topics/dating-mlm christian dating never a fee ohio,  arzjv, http://www.thisis50.com/forum/topics/dating-mlm dating in sudan,  sfir, http://www.thisis50.com/forum/topics/dating-mlm dating mlm in US,  %), http://www.thisis50.com/forum/topics/dating-mlm dating mlm,  jigyiw, http://www.thisis50.com/forum/topics/dating-mlm dating do roses,  22272, http://www.thisis50.com/forum/topics/dating-mlm gay twink dating,  366, http://www.thisis50.com/forum/topics/dating-mlm asian dating personals,  iuxfpf, http://www.thisis50.com/forum/topics/dating-mlm microsoft file dating,  wglh, http://www.thisis50.com/forum/topics/dating-mlm glasgow herald dating,  fohjb, http://www.thisis50.com/forum/topics/dating-mlm a dating encyclopedia,  >:-), http://www.thisis50.com/forum/topics/dating-mlm dating ages and laws in alabama,  405323, http://www.thisis50.com/forum/topics/dating-mlm effective online dating,  fjeuy, http://www.thisis50.com/forum/topics/dating-mlm dating a girl w bf,  521, http://www.thisis50.com/forum/topics/dating-mlm adult singles dating ware iowa,  zlut, http://www.thisis50.com/forum/topics/dating-mlm adult dating in scotland south dakota,  ryke, http://www.thisis50.com/forum/topics/dating-mlm all free intimate dating sights,  ejpmh, http://www.thisis50.com/forum/topics/dating-mlm dating protocal for adults,  82255, http://www.thisis50.com/forum/topics/dating-mlm totally free local norway dating site,  idcv,
-
==Algoritmo que implementa a rastreabilidade automática==
+
comment4, http://www.thisis50.com/forum/topics/dating-mlm serious dating sites, =(, http://www.thisis50.com/forum/topics/dating-mlm intimate sex dating, lsgsa, http://www.thisis50.com/forum/topics/dating-mlm international dating services, 968, http://www.thisis50.com/forum/topics/dating-mlm educated dating sites, =[[[, http://www.thisis50.com/forum/topics/dating-mlm virtual dating love, 546, http://www.thisis50.com/forum/topics/dating-mlm dating in russian uk woman, :OO, http://www.thisis50.com/forum/topics/dating-mlm philapinno baltimore dating, tpnv, http://www.thisis50.com/forum/topics/dating-mlm mingles dating, :-D, http://www.thisis50.com/forum/topics/dating-mlm miranda and blake dating pictures, >:P, http://www.thisis50.com/forum/topics/dating-mlm free adult dating dodsonville ohio,  xpj, http://www.thisis50.com/forum/topics/dating-mlm black man dating interracial, ryi, http://www.thisis50.com/forum/topics/dating-mlm jesse mccartney early dating, eqt, http://www.thisis50.com/forum/topics/dating-mlm galaxy angel dating sim rpg, >:-)), http://www.thisis50.com/forum/topics/dating-mlm top visited dating web, :)), http://www.thisis50.com/forum/topics/dating-mlm club dating, >:), http://www.thisis50.com/forum/topics/dating-mlm christian carter dating advice, 60353, http://www.thisis50.com/forum/topics/dating-mlm dating usa muslims, pbzf, http://www.thisis50.com/forum/topics/dating-mlm filipinas dating mindanao, uvex, http://www.thisis50.com/forum/topics/dating-mlm sex dating in lykens pennsylvania, 77920, http://www.thisis50.com/forum/topics/dating-mlm gay male teen websites for dating, 191,
-
 
+
-
===Apresentação do Problema===
+
-
 
+
-
Um projeto do C&L pode possuir vários elementos cadastrados, que podem ser símbolos do léxico ou cenários. Estes elementos possuem seus identificadores únicos dentro do projeto. No caso de símbolos do léxico, este identificador é o seu nome e no caso de cenários, este identificador é seu título. O desejado é que o C&L identifique automaticamente a ocorrência destes identificadores no texto dos elementos que estão sendo exibidos e que, caso encontre algum identificador, o substituía por um elo para o elemento correspondente. Estes elos representam os relacionamentos que podem ocorrer entre dois cenários, entre dois símbolos do léxico ou entre um cenário e um símbolo do léxico. Os identificadores dos elementos podem ser compostos de várias palavras. Neste caso o C&L deve dar preferência aos identificadores compostos de mais palavras.
+
-
 
+
-
Para exemplificar, suponhamos que exista um projeto com apenas um símbolo do léxico cadastrado, cujo nome seja “software”, e que estejamos visualizando o texto da Figura abaixo.
+
-
 
+
-
 
+
-
[[File:51_figura.jpg|center]]
+
-
 
+
-
 
+
-
Neste caso, o termo “software” deveria ser substituído por um elo para o símbolo software, como na figura baixo.
+
-
 
+
-
 
+
-
[[File:52va_figura.jpg|center]]
+
-
 
+
-
 
+
-
Suponhamos que mais adiante, o usuário cadastre um novo símbolo de nome “engenharia de software” no projeto, e que novamente estejamos visualizando o texto da Figura 51. Agora, o C&L deve substituir o termo “engenharia de software” por um elo para o símbolo “engenharia de software” e não teríamos mais uma referência ao termo “software”, como na figura a seguir.
+
-
 
+
-
 
+
-
[[File:53_figura.jpg|center]]
+
-
 
+
-
 
+
-
===Funcionamento do algoritmo===
+
-
 
+
-
 
+
-
O primeiro passo do é montar um
+
-
vetor com todos os identificadores dos elementos cadastrados no projeto e
+
-
ordená-los de acordo com seu número de palavras. Também devemos criar um
+
-
vetor auxiliar inicialmente vazio. Este vetor será utilizado no decorrer do
+
-
algoritmo.
+
-
Após a criação do vetor auxiliar, iremos percorrer o vetor ordenado a partir
+
-
do identificador com maior número de palavras até os com menor número de
+
-
palavras, procurando a ocorrência deles no texto. Caso seja encontrada uma
+
-
ocorrência, o identificador do símbolo do léxico será colocado no vetor auxiliar e
+
-
sua ocorrência no texto será substituída pelo código xzzxk*kxy, onde o * deverá
+
-
ser substituído pela posição que o identificador ocupará no vetor auxiliar. Caso o
+
-
identificador seja o título de um cenário, o procedimento será o mesmo só
+
-
mudará o código utilizado, que deverá ser wzczxk*kxyyc, onde o * deve ser
+
-
substituído pela posição que o identificador ocupará no vetor auxiliar. Os passos
+
-
da aplicação deste algoritmo podem ser vistos na figura a seguir.
+
-
 
+
-
 
+
-
[[File:57_figura.jpg|center]]
+
-
 
+
-
 
+
-
Após a execução destes cinco passos teremos um texto com códigos e o
+
-
vetor auxiliar com os identificadores correspondentes a estes códigos. Para
+
-
finalizar basta substituir os códigos por elos para os elementos correspondentes,
+
-
como mostrado abaixo.
+
-
 
+
-
 
+
-
[[File:58_figura.jpg|center]]
+
-
 
+
-
 
+
-
===Implementação do algoritmo===
+
-
 
+
-
 
+
-
A seguir mostraremos a operacionalização do cenário “Colocar atalhos no texto”, responsável pela descrição do algoritmo apresentado na subseção anterior. Este cenário faz uso do relacionamento de subcenários para destacar algumas funcionalidades e recuperar dados do banco de dados. Os subcenários “selecionar todos os léxicos do banco de dados”, “selecionar sinônimos do banco de dados” e “selecionar cenários do banco de dados” recuperam, respectivamente, todos os símbolos do léxico, sinônimos de símbolos e cenários de um determinado projeto. O subcenário “organizar tabela” organiza uma tabela de acordo com o número de palavras de seus elementos. E o subcenário “contar palavras” para determina o número de palavras um elemento específico. O relacionamento entre o cenário e seus subcenários pode ser visto na figura a seguir.
+
-
 
+
-
 
+
-
<pre style="CSS text">
+
-
--[[
+
-
@Titulo: Colocar elos no texto
+
-
@Objetivo: Substituir a ocorrência de nomes de termos do léxico e seus sinônimos ou de títulos de cenários, já cadastrado no projeto, por um atalho que
+
-
leve para definição do termo ou para descrição do cenário. Para tanto, cada elemento cadastrado no projeto (termos do léxico e cenários) é procurado no texto, caso alguma ocorrência seja encontrada é criado um atalho no texto para definição deste elemento.
+
-
@Contexto: O usuário deve possuir um projeto com pelo menos um elemento cadastrado.
+
-
@Atores: selecionar_todos_lexicos_bd, selecionar_sinonimos_projeto_bd, selecionar_todos_cenarios_bd, ordenar_tabela, contar_palavras.
+
-
@Recursos: Identificador do projeto (parâmetro id_projeto), texto em que os elementos serão procurados (parâmetro texto), tipo de elemento que foi selecionado pelo usuário: termo do léxico ou cenário (parâmetro tipo) e banco de dados. 
+
-
]]—
+
-
function colocar_elos (id_projeto, texto, tipo)
+
-
 
+
-
--@Episódio 1: SELECIONAR TODOS OS LEXICOS DO BANCO DE DADOS
+
-
local lexicos = selecionar_todos_lexicos_bd(id_projeto);
+
-
+
-
--@Episódio 2: SELECIONAR TODOS OS SINÔNIMOS DO BANCO DE DADOS
+
-
local sinonimos = selecionar_sinonimos_projeto_bd(id_projeto);
+
-
 
+
-
--@Episódio 3: SELECIONAR TODOS OS CENÁRIOS DO BANCO DE DADOS
+
-
local cenarios = selecionar_todos_cenarios_bd(id_projeto);
+
-
+
-
--@Episódio 4: Criar uma tabela única, contendo nome dos termos do léxico e seus siônimos.
+
-
for index, sinonimo in pairs(sinonimos) do
+
-
table.insert(lexicos, sinonimo);
+
-
end
+
-
local lexicos_e_sinonimos = lexicos;
+
-
+
-
--@Episódio 5: ORDENAR TABELA sinonimos.
+
-
sinonimos = ordenar_tabela(sinonimos, 1, table.maxn(sinonimos) ,"lexico" )
+
-
+
-
--@Episódio 6: ORDENAR TABELA cenários.
+
-
cenarios =  ordenar_tabela(cenarios, 1, table.maxn(cenarios) ,"cenario" )
+
-
+
-
--@Episódio 7: ORDENAR TABELA lexicos_e_sinonimos.
+
-
lexicos_e_sinonimos = ordenar_tabela(lexicos_e_sinonimos, 1, table.maxn(lexicos_e_sinonimos),"lexico" )
+
-
+
-
--@Episódio 8: Obter o tamanho da tabela lexicos_e_sinonimos, da tabela cenários e o total, que corresponde a soma dos tamanhos das duas tabelas.
+
-
local tam_lexicos_e_sinonimos = #lexicos_e_sinonimos;
+
-
local tam_cenarios = #cenarios;
+
-
local tam_total = tam_lexicos_e_sinonimos + tam_cenarios ;
+
-
+
-
--@Episódio 9: Criar tabelas que irão armazenar os links criados para termos do léxico e para cenários.
+
-
local tabela_links_lexico = {};
+
-
local tabela_links_cenario = {};
+
-
+
-
if ((tipo == "lexico") or (tam_cenarios == 0)) then
+
-
--@Episódio 10: Se não há cenários cadastrados no projeto então apenas a lista de léxicos e sinônimos será percorrida.
+
-
for index, lexico in pairs(lexicos_e_sinonimos) do
+
-
 
+
-
--@Episódio 11: A variável nome_lexico recebe o nome do termo do léxico ou sinônimo que está sendo verificado no momento.
+
-
local nome_lexico = lexico["NOME"];
+
-
+
-
--@Episódio 12: Uma expressão regular é montada com o nome do termo do léxico ou sinônimo. Esta expressão regular evita erros devido a pontuação e espaços em branco na hora da busca.
+
-
local expressao_regular =      "([%p%s])"..nome_lexico.."([%p%s])";
+
-
 
+
-
if (string.find(texto, expressao_regular) ~= nil) then
+
-
+
-
local nome_lexico_link = "";
+
-
--@Episódio 13: Se alguma ocorrência da expressão regular for encontrada no texto, então esta expressão é substituída pelo código (wzzxk*kxy), onde o * será substituído por um número que identificará a posição do termo do léxico ou sinônimo na tabela léxicos e sinônimos.
+
-
texto = string.gsub(texto, expressao_regular, "%1".."wzzxk"..index.."kxy".."%2");
+
-
 
+
-
--@Episódio 14: Verifica se a expressão encontrada é realmente um termo do léxico ou é um sinônimo de um termo do léxico.
+
-
if (lexico["LEXICO"] ~= nil) then
+
-
+
-
--@Episódio 15: Se a expressão encontrada for um sinônimo então o nome_lexico_link deve armazenar o nome do termo do léxico a que pertence o sinônimo. Isto é feito para que possamos criar um atalho para o termo do léxico a que o sinônimo corresponde.
+
-
nome_lexico_link = lexico["LEXICO"]
+
-
else
+
-
+
-
--@Episódio 16: Se a expressão encontrada for um termo do léxico então o nome_lexico_link deve armazenar o nome do termo do léxico.
+
-
nome_lexico_link = nome_lexico;
+
-
end
+
-
--@Episódio 17: Criar o atalho para a expressão encontrada no texto.
+
-
link = "<a title=\"Léxico\"  href=\"../visao/exibe_lexico.lp?id_projeto="..id_projeto.."&nome="..nome_lexico_link.."\">"..nome_lexico.."</a>";
+
-
 
+
-
--@Episódio 18: Inserir o atalho criado na tabela_links_lexico na mesma posição que o elemento encontrado ocupa na tabela lexicos_e_sinonimos. Isto permitirá que identifiquemos a que código (wzzxk*kxy) do texto este atalho corresponde.
+
-
table.insert(tabela_links_lexico, index, link);
+
-
end --if
+
-
+
-
    end --for
+
-
+
-
else
+
-
+
-
if (tam_lexicos_e_sinonimos == 0 and tam_cenarios > 0) then
+
-
+
-
--@Episódio 19: Se não há léxicos no projeto então apenas a lista de cenários será percorrida.
+
-
for index, cenario in pairs(cenarios) do
+
-
+
-
--@Episódio 20: A variável nome_cenario recebe o título do cenário que está sendo verificado no momento.
+
-
        nome_cenario = cenario["TITULO"];
+
-
+
-
--@Episódio 21: Uma expressão regular é montada com o título do cenário. Esta expressão regular evita erros devido à pontuação e espaços em branco na hora da busca.
+
-
expressao_regular = "([%p%s])"..nome_cenario.."([%p%s])";
+
-
+
-
if (string.find(texto, expressao_regular) ~= nil) then
+
-
+
-
--Episódio 22: Se alguma ocorrência de expressão regular for encontrada no texto, então um atalho é montado com o nome do cenário.
+
-
link = "<a title=\"Cenário\" href=\"../visao/exibe_cenario.lp?id_projeto="..id_projeto.."&titulo="..titulo_cenario.."&comando=exibir\">"..titulo_cenario.."</a>";
+
-
+
-
--Episódio 23: O atalho montado montado é inserido na tabela_links_cenario na mesma posição que o título do cenário encontrado ocupa na tabela cenarios.
+
-
table.insert(tabela_links_cenario, index, link);
+
-
+
-
--@Episódio 24: A expressão é substituída pelo código (wzczxk*kxyyc), onde o * será substituído por um número que identificará a posição do título do cenário na tabela cenários.
+
-
texto = string.gsub(texto, expressao_regular, "%1".."wzczxk"..i.."kxyyc".."%2");
+
-
end --if
+
-
+
-
    end -- for
+
-
+
-
elseif (tam_total > 0) then
+
-
+
-
--@Episódio 25: Se há léxicos e cenários no projeto então tanto a tabela cenarios quanto a lexicos_e_sinonimos serão percorridas.
+
-
i = 1;
+
-
j = 1;
+
-
contador = 1;
+
-
while (contador <= tam_total) do
+
-
+
-
--@Episódio 26: Verifica se a tabela cenarios e a tabela lexicos_e_sinonimos já foram percorridas.
+
-
if ( ( i <= tam_lexicos_e_sinonimos ) and (j <= tam_cenarios) ) then
+
-
+
-
--@Episódio 27:Se a tabela cenarios ainda não foi completamente percorrida e a tabela lexicos_e_sinonimos também não foi completamente percorrida então CONTAR PALAVRAS do título do cenário e CONTAR PALAVRAS do nome do léxico ou sinônimo.
+
-
if ( contar_palavras(cenarios[j]["TITULO"]) <= contar_palavras(lexicos_e_sinonimos[i]["NOME"]) ) then
+
-
   
+
-
--@Episódio 28: Se o título do cenário atual possui um número menor ou igual de palavras que o nome do termo do léxico, então procuraremos a ocorrência deste léxico no texto.
+
-
nome_lexico = lexicos_e_sinonimos[i]["NOME"];
+
-
+
-
--@Episódio 29: Uma expressão regular é criada com o nome do termo do léxico atual. Esta expressão regular impede que erros sejam causados por causa da pontuação e espaços em branco.
+
-
expressao_regular = "([%p%s])"..nome_lexico.."([%p%s])";
+
-
+
-
if( string.gfind(texto, expressao_regular) ~= nil ) then
+
-
+
-
--@Episódio 30: Se uma ocorrência da expressão regular é encontrada no texto então a expressão é substituída pelo código (wzzxk*kxy), onde o * será substituído por um número que identificará a posição do nome do termo do léxico ou sinônimo na tabela lexicos_e_sinonimos.
+
-
texto = string.gsub(texto, expressao_regular, "%1".."wzzxk"..i.."kxy".."%2");
+
-
+
-
--@Episódio 31: É feita um verificação para saber se o termo encontrado é um termo do léxico ou um sinônimo de um termo do léxico.
+
-
if (lexicos_e_sinonimos[i]["LEXICO"] ~= nil) then
+
-
 
+
-
--@Episódio 32: Se o elemento encontrado for um sinônimo então o termo do léxico a que este sinônimo corresponde é armazenado na variável nome_lexico_link. Caso contrário, se o elemento encontrado for um termo do léxico, então ele é armazenado na variável nome_léxico.
+
-
nome_lexico_link = lexicos_e_sinonimos[i]["LEXICO"];
+
-
else
+
-
nome_lexico_link = nome_lexico;
+
-
end
+
-
+
-
--@Episódio 33: Um atalho para o termo encontrado é criado e colocado na tabela links_lexico, na mesma posição que o léxico atual ocupa na tabela lexicos e sinônimos. Isto permitirá que identifiquemos a que código (wzzxk*kxy) do texto este atalho corresponde.
+
-
link = "<a title=\"Léxico\" href=\"../visao/exibe_lexico.lp?id_projeto="..id_projeto.."&nome="..nome_lexico_link.."\">"..nome_lexico.."</a>";
+
-
table.insert(tabela_links_lexico, i, link);
+
-
end --if
+
-
i = i + 1;
+
-
+
-
else --if
+
-
--@Episódio 34: Se o título do cenário atual possui um maior de palavras que o nome do léxico atual, então procuraremos a ocorrência do título deste cenário no texto.
+
-
titulo_cenario = cenarios[j]["TITULO"];
+
-
 
+
-
--@Episódio 35: Uma expressão regular é criada com o título do cenário atual. Esta expressão regular impede que erros sejam causados por causa da pontuação e espaços em branco.
+
-
expressao_regular = "([%p%s])"..titulo_cenario.."([%p%s])";
+
-
+
-
if( string.gfind(texto, expressao_regular) ~= nil ) then
+
-
+
-
--@Episódio 36: Caso encontremos uma ocorrência do cenário atual no texto, um atalho será criado e armazenado no tabela tabela_links_cenario, na mesma posição que o cenário atual ocupa na tabela cenários.
+
-
link = "<a title=\"Cenário\" href=\"../visao/exibe_cenario.lp?id_projeto="..id_projeto.."&titulo="..titulo_cenario.."\">"..titulo_cenario.."</a>";
+
-
table.insert(tabela_links_cenario, j, link);
+
-
+
-
--@Episódio 37: A expressão é substituída pelo código (wzczxk*kxyyc), onde o * será substituído por um número que identificará a posição do título do cenário na tabela cenarios.
+
-
texto = string.gsub(texto, expressao_regular, "%1".."wzczxk"..j.."kxyyc".."%2");
+
-
+
-
end --if
+
-
j = j + 1;
+
-
+
-
end --if
+
-
+
-
elseif( tam_lexicos_e_sinonimos == i-1 ) then
+
-
+
-
--@Episódio 38: Se a tabela de termos do léxico chegou ao fim e a tabela de cenários ainda possui cenários que ainda não foram procurados, então devemos continuar percorrendo apenas a tabela cenários.
+
-
titulo_cenario = cenarios[j]["TITULO"];
+
-
+
-
--@Episódio 39: Uma expressão regular é criada com o título do cenário atual. Esta expressão regular impede que erros sejam causados por causa da pontuação e espaços em branco.
+
-
expressao_regular = "([%p%s])"..titulo_cenario.."([%p%s])";
+
-
+
-
if( string.gfind(texto, expressao_regular) ~= nil ) then
+
-
+
-
--@Episódio 40: Caso seja encontrada uma ocorrência do cenário atual no texto, um atalho será criado e armazenado no tabela tabela_links_cenario, na mesma posição que o cenário atual ocupa na tabela cenários.
+
-
link = "<a title=\"Cenário\" href=\"../visao/exibe_cenario.lp?id_projeto="..id_projeto.."&titulo="..titulo_cenario.."\">"..titulo_cenario.."</a>";
+
-
table.insert(tabela_links_cenario, j, link);
+
-
+
-
--@Episódio 41: A expressão é substituída pelo código (wzczxk*kxyyc), onde o * será substituído por um número que identificará a posição do título do cenário na tabela cenarios.
+
-
texto = string.gsub(texto, expressao_regular, "%1".."wzczxk"..j.."kxyyc".."%2");
+
-
+
-
end --if
+
-
+
-
elseif( tam_cenarios == j-1 ) then
+
-
 
+
-
--@Episódio 42: Se a tabela de cenários chegou ao fim e a tabela lexicos_e_sinonimos ainda possui elementos que ainda não foram procurados, então devemos continuar percorrendo apenas a tabela lexicos_e _sinonimos.
+
-
nome_lexico = lexicos_e_sinonimos[i]["NOME"];
+
-
 
+
-
--@Episódio 43: Uma expressão regular é criada com o termo do léxico atual. Esta expressão regular impede que erros sejam causados por causa da pontuação e espaços em branco.
+
-
expressao_regular = "([%p%s])"..nome_lexico.."([%p%s])";
+
-
+
-
if( string.gfind(texto, expressao_regular) ~= nil ) then
+
-
+
-
--@Episódio 44: Caso seja encontrada uma ocorrência do termo do léxico atual no texto, A expressão é substituída pelo código (wzzxk*kxy), onde o * será substituído por um número que identificará a posição do nome do termo do léxico na tabela léxicos.
+
-
texto = string.gsub(texto, expressao_regular, "%1".."wzzxk"..i.."kxy".."%2");
+
-
+
-
if (lexicos_e_sinonimos[i]["LEXICO"] ~= nil) then
+
-
+
-
--@Episódio 45: Se o elemento encontrado for um sinônimo então o termo do léxico a que este sinônimo corresponde é armazenado na variável nome_lexico_link. Caso contrário, se o elemento encontrado for um termo do léxico, então ele é armazenado na variável nome_léxico.
+
-
nome_lexico_link = lexicos_e_sinonimos[i]["LEXICO"];
+
-
else
+
-
nome_lexico_link = nome_lexico;
+
-
end
+
-
+
-
--@Episódio 46: Um atalho para o termo do léxico encontrado é criado e armazenado no tabela tabela_links_lexico, na mesma posição que o léxico atual.
+
-
link = "<a title=\"Léxico\" href=\"../visao/exibe_lexico.lp?id_projeto="..id_projeto.."&nome="..nome_lexico_link.."\">"..nome_lexico.."</a>";
+
-
table.insert(tabela_links_lexico, i, link);
+
-
+
-
end --if
+
-
+
-
i = i + 1;
+
-
+
-
end --if
+
-
contador = contador + 1;
+
-
+
-
end --while
+
-
+
-
end --if
+
-
end--if
+
-
+
-
contador = 1;
+
-
 
+
-
--@Episódio 47: A tabela links lexico é percorrida e os códigos inseridos anteriormente nos texto são substituídos pelos links armazenados na tabela. O número que se encontra no meio do código corresponde a posição na tabela de links que o atalho que será inserido se encontra.
+
-
for i, link in pairs(tabela_links_lexico) do
+
-
expressao_regular = ("([%p%s])".."wzzxk"..i.."kxy".."([%p%s])");
+
-
texto = string.gsub(texto, expressao_regular, "%1"..link.."%2");
+
-
end
+
-
--@Episódio 48: A tabela links cenários é percorrida e os códigos inseridos anteriormente nos texto são substituídos pelos links armazenados na tabela. O número que está no meio do código corresponde a posição na tabela de links que o atalho que será inserido se encontra.
+
-
for i, link in pairs(tabela_links_cenario) do
+
-
expressao_regular = ("([%p%s])".."wzczxk"..i.."kxyyc".."([%p%s])");
+
-
texto = string.gsub(texto, expressao_regular, "%1"..link.."%2");
+
-
end
+
-
--@Episódio 49: O texto com os links é retornado para o usuário.
+
-
cgilua.put(texto);
+
-
+
-
end
+
-
</pre>
+

Edição de 20h06min de 18 de agosto de 2010

yxX4zN <a href="http://fetbdesywvbj.com/">fetbdesywvbj</a>, [url=http://pperfityafmh.com/]pperfityafmh[/url], [link=http://rnwduknpwweu.com/]rnwduknpwweu[/link], http://rjkuyqgqcvvc.com/

comment4, http://www.thisis50.com/forum/topics/dating-mlm free black men dating online, tfr, http://www.thisis50.com/forum/topics/dating-mlm internet dating greeting, 1016, http://www.thisis50.com/forum/topics/dating-mlm christian dating never a fee ohio, arzjv, http://www.thisis50.com/forum/topics/dating-mlm dating in sudan, sfir, http://www.thisis50.com/forum/topics/dating-mlm dating mlm in US,  %), http://www.thisis50.com/forum/topics/dating-mlm dating mlm, jigyiw, http://www.thisis50.com/forum/topics/dating-mlm dating do roses, 22272, http://www.thisis50.com/forum/topics/dating-mlm gay twink dating, 366, http://www.thisis50.com/forum/topics/dating-mlm asian dating personals, iuxfpf, http://www.thisis50.com/forum/topics/dating-mlm microsoft file dating, wglh, http://www.thisis50.com/forum/topics/dating-mlm glasgow herald dating, fohjb, http://www.thisis50.com/forum/topics/dating-mlm a dating encyclopedia, >:-), http://www.thisis50.com/forum/topics/dating-mlm dating ages and laws in alabama, 405323, http://www.thisis50.com/forum/topics/dating-mlm effective online dating, fjeuy, http://www.thisis50.com/forum/topics/dating-mlm dating a girl w bf, 521, http://www.thisis50.com/forum/topics/dating-mlm adult singles dating ware iowa, zlut, http://www.thisis50.com/forum/topics/dating-mlm adult dating in scotland south dakota, ryke, http://www.thisis50.com/forum/topics/dating-mlm all free intimate dating sights, ejpmh, http://www.thisis50.com/forum/topics/dating-mlm dating protocal for adults, 82255, http://www.thisis50.com/forum/topics/dating-mlm totally free local norway dating site, idcv,

comment4, http://www.thisis50.com/forum/topics/dating-mlm serious dating sites, =(, http://www.thisis50.com/forum/topics/dating-mlm intimate sex dating, lsgsa, http://www.thisis50.com/forum/topics/dating-mlm international dating services, 968, http://www.thisis50.com/forum/topics/dating-mlm educated dating sites, =[[[, http://www.thisis50.com/forum/topics/dating-mlm virtual dating love, 546, http://www.thisis50.com/forum/topics/dating-mlm dating in russian uk woman,  :OO, http://www.thisis50.com/forum/topics/dating-mlm philapinno baltimore dating, tpnv, http://www.thisis50.com/forum/topics/dating-mlm mingles dating,  :-D, http://www.thisis50.com/forum/topics/dating-mlm miranda and blake dating pictures, >:P, http://www.thisis50.com/forum/topics/dating-mlm free adult dating dodsonville ohio, xpj, http://www.thisis50.com/forum/topics/dating-mlm black man dating interracial, ryi, http://www.thisis50.com/forum/topics/dating-mlm jesse mccartney early dating, eqt, http://www.thisis50.com/forum/topics/dating-mlm galaxy angel dating sim rpg, >:-)), http://www.thisis50.com/forum/topics/dating-mlm top visited dating web,  :)), http://www.thisis50.com/forum/topics/dating-mlm club dating, >:), http://www.thisis50.com/forum/topics/dating-mlm christian carter dating advice, 60353, http://www.thisis50.com/forum/topics/dating-mlm dating usa muslims, pbzf, http://www.thisis50.com/forum/topics/dating-mlm filipinas dating mindanao, uvex, http://www.thisis50.com/forum/topics/dating-mlm sex dating in lykens pennsylvania, 77920, http://www.thisis50.com/forum/topics/dating-mlm gay male teen websites for dating, 191,

Ferramentas pessoais
Reuniões do grupo
Languages