[Tool/Web/Other] (Online) Tabulador e Analisador de Cуdigos
#1

Tуpico editado dia 21/09 com a segunda versгo do projeto !! 23:23

Tabulador e Analisador de Cуdigos

- Deixa seu cуdigo indentado/tabulado e organizado
- Analisa se os brackets {} de seu cуdigo estгo fechados e abertos de forma correta (chega dos 26 erros por falta de } )

- Rбpido e fбcil uso. Cole seu cуdigo abaixo e clique em analisar !!

Site:
http://ipsteam.atwebpages.com/ VERSAO 1
http://tabulador.medianewsonline.com VERSAO 2

Na nova versгo:
- ProgressBar com porcentagem incluнdo
- Status do processamento da linha atual
- Maior velocidade para cуdigos grandes (foi usado um sistema de alivio com setTimeOut. Assim o navegador tende a travar menos)
- Foi melhorado o algorнtimo de {}.Agora as linhas sгo mostradas mais prуximas

Nгo й publicaзгo nгo Й onde a pбgina estб hospedada

_________________________________________

DICA DO BRUNO:
Caso esteja procurando brackets { perdidos.

Faзa o seguinte:

Por exemplo:

Код:
1 -fun () {
2 -}
3 -
4 -fusn () {
5 -{ 
6 - ///sadasd
7 -}
8 -
9 -fun() {
10 - }
Me deu aqui "O erro foi encontrado antes da linha 7"

Note que o erro estб 3 linhas antes do verdadeiro erro (na linha 4) entгo selecione todo cуdigo antes da callback fusn e coloque denovo para analisar, caso nгo tiver erro vocк sabe que o erro foi na callback fusn

_________________________________________


Cуdigo Fonte
Versгo 1:
pawn Код:
<center><font face=verdana><font size=5 color=green><b>T</b>abulador e Analisador de Cуdigos</font></br></br>

- Deixa seu cуdigo indentado/tabulado e organizado</br>
- Analisa se os brackets {} de seu cуdigo estгo fechados e abertos de forma correta</br>
- Rбpido e fбcil uso. Cole seu cуdigo abaixo e clique em analisar !!</br>

</font></br>
<script>  




function indent(parametros) {  

    var linha = parametros.split("\n");
    var bck = 0;
    var filtro = " \t\n\r\f";
   
    document.write("<textarea>");

   
    for(i = 0; i != linha.length; i++) {
       
        j = 0;
   
        while((filtro.indexOf(linha[i][j]) != -1)) {
            j++;
        }

        f = j;

        document.write("\n");
       


        for(b = 0 ; linha[i][j]; j++) {

            if(linha[i][j] == "{") {

                    bck++;

                    ultimobrack = i;

                    if(j == f) {
                        f = -1;
                    }
   
            }

            if(linha[i][j] == "}") {
                    bck--;
            }

           
            if(bck < 0) {
                alert("[ERRO] Existem bck '}' demais na linha " + i);
            }
           

            if(!b && bck) {
               
                for(x = 0; x < (f == -1 ? bck - 1 : bck); x++) {
                    document.write('\t');                  
                }  

            }
           
   
            document.write(linha[i][j]);

            b = 1;

            u = bck;

            if(f == -1 && linha[i].length > 1) {

                document.write("\n");

                for(x = 0; x < (bck); x++) {
                    document.write('\t');                  
                }  

                f --;  
            }


        }

    }
   
    if(bck) {
        alert("[ERRO] Existem bck '{' demais na linha " + ultimobrack-1);
    }

       

    document.write("</textarea>");
   
    return true;  
}  

String.prototype.rtrim = function () {
    return this.replace(/\s+$/,"");
}


</script>  


<textarea width="600" heigth="600" id="area" style="margin: 2px; width: 630px; height: 201px; ">Cole seu cуdigo aqui !!

</textarea></br>
<input type=button onClick=indent(document.getElementById('area').value) value=Analisar />  
</center>
</br></br>
Por <b>Bruno da Silva</b> @ <b>iPs TeaM 2010-2012</b>
Versгo 2:
pawn Код:
<center><font face=verdana><font size=5 color=green><b>T</b>abulador e Analisador de Cуdigos</font></br></br>

- Deixa seu cуdigo indentado/tabulado e organizado</br>
- Analisa se os brackets {} de seu cуdigo estгo fechados e abertos de forma correta</br>
- Rбpido e fбcil uso. Cole seu cуdigo abaixo e clique em analisar !!</br>

</font></br>
<script>  


/*
 *  Copyright © 2012 [iPs]TeaM
 *  Bruno da Silva (brunoemail@r7.com)
 *  Simples e eficiente biblioteca para criar efeito progressbar em javascript canvas
 
 * http://www.brunodasilva.com.br
 * http://www.ips-team.forumeiros.com
*/

 
function createProgressBar(x, y, largura, altura, color, maximo, canvasid) {
        this.valorprogresso = 0
        this.maximo = maximo
        this.largura = largura
        this.altura = altura
        this.cnv = document.getElementById(canvasid).getContext('2d')
        this.background = document.getElementById(canvasid).style.background;
        this.posicaox = x
        this.posicaoy = y
        this.cor = color
        this.updateProgress = function () {
                if (this.valorprogresso < this.maximo) {
                        this.cnv.fillStyle = this.cor
                        this.cnv.fillRect(this.posicaox + ((this.largura /  this.maximo) * (this.valorprogresso)), y,this.largura /  this.maximo, this.altura)
                        this.valorprogresso+=1
 
                        if (this.textmiddle) {
                                this.cnv.fillStyle =this.background
                                this.cnv.fillRect(this.posicaox - 3, y + (this.tamanhof + this.altura), this.tamanhof * 5, this.tamanhof + this.altura - 1)
                                this.cnv.fillStyle = this.textcolor
                                this.cnv.font = this.textfonte
                                if ((((this.valorprogresso / this.maximo) * 100) >> 0) == 100) {
                                        this.cnv.fillText("Completo!", this.posicaox - 1, this.altura + y + (this.tamanhof * 2)-3)
                                } else {
                                        this.cnv.fillText((((this.valorprogresso / this.maximo) * 100) >> 0) + " %", this.posicaox - 2, this.altura + y + (this.tamanhof * 2))
                                }
                        }
                }
                return (this.valorprogresso < this.maximo);
        }
        this.getProgress = function () {
                return this.valorprogresso;
        }
        this.setProgress = function (v) {
                return this.valorprogresso = v;
        }
        this.showText = function (ativado, color, fonte, tamanho) {
                this.textcolor = color
                this.tamanhof = tamanho
                this.textfonte = tamanho + "pt " + fonte
                this.textmiddle = ativado;
        }
        return true;
}
 


/*
 *  Copyright © 2012 [iPs]TeaM
 *  Bruno da Silva (brunoemail@r7.com)
 *  Simples e eficiente indentador de cуdigos manipulado com settimeout thread em javascript
 
 * http://www.brunodasilva.com.br
 * http://www.ips-team.forumeiros.com
*/


var i = 0;
var filtro = " \t\n\r\f";
 
var bla = 0;
var bck = 0;
var rs = ['  ', '  '];
var linha = rs;
var impressaofinal = "";


function indent(parametros) {  


    linha = parametros.split("\n");

    document.write("<div  style=\"background-color:black; width:800;\" id='status' ></div><canvas style=\"background-color:black\" id='canvasID' width=" + 800 + " height=" + 600 +"></canvas><textarea id='novocodigo' style='display:none;'>");

    bar =  new createProgressBar(400-200, 600/2, 400, 10, "green", linha.length, "canvasID");
    bar.showText(true, "white", "verdana", 10);


    setTimeout( function () { processar(i, bar, bck, bla, linha, filtro ); } ,  100);
    //document.getElementById('area').style.display = "none";

    return true;  
}  


function terminar (bck) {

    if(bck) {
        alert("Existem { demais no cуdigo");
        alert("O erro foi encontrado antes da linha " + (ultimobrack-1) );
    }
    else alert("Fechando o cуdigo ... Aguarde ");
   
    document.write(impressaofinal  + "</textarea>");
    document.getElementById("canvasID").style.display = "none";
    document.getElementById("novocodigo").style.display = "block";
    document.getElementById('status').innerHTML = "<font face=\"Verdana\" color=\"green\" size=\"3\">Foi finalizado !!" ;  
}

    function processar(i, bar, bck, bla, linha, filtro ) {

       
//
        bar.updateProgress();
// 

        document.getElementById('status').innerHTML = "<font face=\"Verdana\" color=\"white\" size=\"3\">Processando: <font size=1>" + linha[i] ;

        j = 0;

        while((filtro.indexOf(linha[i][j]) != -1)) {
            j++;
        }

        f = j;

        //document.write("\n");
        impressaofinal += "\n";


        for(b = 0 ; linha[i][j]; j++) {

            if(linha[i][j] == "{") {

                    bck++;

                    ultimobrack = i;

                    if(j == f) {
                        f = -1;
                    }
   
            }

            if(linha[i][j] == "}") {
                    bck--;
            }

           
            if(bck < 0) {
                alert("Existem } demais no cуdigo");
                alert("O processo foi parado proximo a linha que houve o erro");
                terminar (0);
                return true;
            }
           

            if(!b && bck) {
               
                for(x = 0; x < (f == -1 ? bck - 1 : bck); x++) {
                    //document.write('\t');
                    impressaofinal += "\t";            
                }  

            }
           
   
        //  document.write(linha[i][j]);
            impressaofinal += linha[i][j];

            b = 1;

            u = bck;

            if(f == -1 && linha[i].length > 1) {

                //document.write("\n");
                impressaofinal += "\n";

                for(x = 0; x < (bck); x++) {
                    //document.write('\t');
                    impressaofinal += "\t";                
                }  

                f --;  
            }


        }

        if(i < linha.length-1) {
            i++;
            linha[i-1][0] = 0;
            setTimeout( function () { processar(i, bar, bck, bla, linha, filtro );  },  2);
           
        }
        else {
            terminar (bck);
        }
        return true;
    }

String.prototype.rtrim = function () {
    return this.replace(/\s+$/,"");
}


 
</script>  


<textarea width="600" heigth="600" id="area" style="margin: 2px; width: 630px; height: 201px; ">Cole seu cуdigo aqui !!

</textarea></br>

<input type=button onClick=indent(document.getElementById('area').value) value=Analisar />  
</center>
</br></br>
Por <b>Bruno da Silva</b> @ <b>iPs TeaM 2010-2012 - [url]www.brunodasilva.com.br[/url] www.ips-team.forumeiros.com</b>
Teste Importante: Nos testes testei um gamemode de 24.160 linhas e levou quase 3 minutos para analisar todo o cуdigo .. Apуs isto, demorou uns 15 segundos para imprimir o cуdigo na tela.

Demonstraзгo V2:
[ame]http://www.youtube.com/watch?v=3_MsuvjqhrA[/ame]

(qualidade horrнvel)

Bom uso!

Criado por Bruno da Silva. Projeto licenciado.
Testado por dMagnus e Kmatsu
Reply


Messages In This Thread
(Online) Tabulador e Analisador de Cуdigos - by ipsBruno - 21.07.2012, 04:49
Re: (Online) Tabulador e Analisador de Cуdigos - by BrunoBSF - 21.07.2012, 04:59
Re : (Online) Tabulador e Analisador de Cуdigos - by ipsBruno - 21.07.2012, 05:01
Re: (Online) Tabulador e Analisador de Cуdigos - by BreakDriFT - 21.07.2012, 07:59
Re: Re : (Online) Tabulador e Analisador de Cуdigos - by [R] ousenber [K] - 21.07.2012, 12:53
Re: (Online) Tabulador e Analisador de Cуdigos - by [BCV]Dr.House_. - 21.07.2012, 13:03
Re: (Online) Tabulador e Analisador de Cуdigos - by RebeloX - 21.07.2012, 13:28
Re: (Online) Tabulador e Analisador de Cуdigos - by Kuddy - 21.07.2012, 14:24
Re: (Online) Tabulador e Analisador de Cуdigos - by Pedro_BML - 21.07.2012, 15:53
Re: (Online) Tabulador e Analisador de Cуdigos - by RebeloX - 21.07.2012, 15:59
Re: (Online) Tabulador e Analisador de Cуdigos - by Kuddy - 21.07.2012, 16:04
Re : Re: (Online) Tabulador e Analisador de Cуdigos - by ipsBruno - 21.07.2012, 19:14
Re: (Online) Tabulador e Analisador de Cуdigos - by paulor - 21.07.2012, 20:49
Re : (Online) Tabulador e Analisador de Cуdigos - by ipsBruno - 21.07.2012, 20:51
Re: Re : (Online) Tabulador e Analisador de Cуdigos - by paulor - 21.07.2012, 20:56
Re: Re : Re: (Online) Tabulador e Analisador de Cуdigos - by RebeloX - 22.07.2012, 17:15
Re: (Online) Tabulador e Analisador de Cуdigos - by Mandrack_FreeZe - 23.07.2012, 16:37
Respuesta: Re: Re : Re: (Online) Tabulador e Analisador de Cуdigos - by ipsBruno - 23.07.2012, 19:10
Re: (Online) Tabulador e Analisador de Cуdigos - by mau.tito - 23.07.2012, 19:19
AW: (Online) Tabulador e Analisador de Cуdigos - by billy the kid - 23.07.2012, 19:26
Re: (Online) Tabulador e Analisador de Cуdigos - by Ades - 23.07.2012, 20:32
Respuesta: (Online) Tabulador e Analisador de Cуdigos - by ipsBruno - 23.07.2012, 21:02
Re: Respuesta: (Online) Tabulador e Analisador de Cуdigos - by Ades - 23.07.2012, 21:22
Re: Respuesta: (Online) Tabulador e Analisador de Cуdigos - by Mandrack_FreeZe - 23.07.2012, 21:25
Respuesta: (Online) Tabulador e Analisador de Cуdigos - by ipsBruno - 22.09.2012, 00:55
Re: (Online) Tabulador e Analisador de Cуdigos - by BrunoBSF - 22.09.2012, 01:26
Respuesta: Re: (Online) Tabulador e Analisador de Cуdigos - by ipsBruno - 22.09.2012, 01:30
Re: (Online) Tabulador e Analisador de Cуdigos - by BrunoBSF - 22.09.2012, 01:32
Re: (Online) Tabulador e Analisador de Cуdigos - by dPlaYer_ - 22.09.2012, 01:53
Respuesta: (Online) Tabulador e Analisador de Cуdigos - by ipsBruno - 22.09.2012, 01:58
Re: (Online) Tabulador e Analisador de Cуdigos - by Owtsiixx_Twd - 22.09.2012, 10:42
Re: (Online) Tabulador e Analisador de Cуdigos - by dPlaYer_ - 22.09.2012, 12:00
Re: (Online) Tabulador e Analisador de Cуdigos - by dPlaYer_ - 22.09.2012, 12:03
Re: (Online) Tabulador e Analisador de Cуdigos - by Rhayziin - 22.09.2012, 13:18
Re: (Online) Tabulador e Analisador de Cуdigos - by jpeg - 22.09.2012, 19:33
Re: (Online) Tabulador e Analisador de Cуdigos - by mau.tito - 22.09.2012, 20:26
Re: (Online) Tabulador e Analisador de Cуdigos - by alexcordeiro - 29.10.2012, 10:32
Respuesta: (Online) Tabulador e Analisador de Cуdigos - by ipsBruno - 29.10.2012, 14:37
Re: Respuesta: (Online) Tabulador e Analisador de Cуdigos - by alexcordeiro - 29.10.2012, 17:39

Forum Jump:


Users browsing this thread: 3 Guest(s)