[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
#2

Lol massa paks xD parabens mesmo
Reply
#3

Eu nгo testei com GMs Gigantescos, mas em alguns testes pareceu ser melhor que o Tidy Pawn de DracoBlue.

Queres um exemplo? Use o cуdigo de meu anti hacking em ambos .. :P ou atй cуdigos grandes de umas 2 mil linhas, parece-me que o do Draco acaba por nгo funcionar e retorna uns "uhshuauhsahu" (й sу aqui ?)
Reply
#4

Bem legal e util , parabйns bruno
Reply
#5

Quote:
Originally Posted by [FeK]DraKiNs
Посмотреть сообщение
Eu nгo testei com GMs Gigantescos, mas em alguns testes pareceu ser melhor que o Tidy Pawn de DracoBlue.

Queres um exemplo? Use o cуdigo de meu anti hacking em ambos .. :P ou atй cуdigos grandes de umas 2 mil linhas, parece-me que o do Draco acaba por nгo funcionar e retorna uns "uhshuauhsahu" (й sу aqui ?)
Realmente se colocar muitas linhas volta coisas sem noзгo(sу de vez enquando)
Reply
#6

Muito bom mesmo cara,
Parabйns para vocк !
Reply
#7

Muito bom bruno
Reply
#8

Muito bomІ
Reply
#9

Bruno, tu й inteligente demais cara kkk *--*
Quando eu crescer quero ser igual vocк kkk
Reply
#10

Quote:
Originally Posted by Pedro_BML
Посмотреть сообщение
Bruno, tu й inteligente demais cara kkk *--*
Quando eu crescer quero ser igual vocк kkk
Sim podemos dizer que ele й inteligente, mas eu acho que nгo й isso, eu acho que ele sabe usar bem a lуgica, ele tem lуgica e a lуgica й o mais importante em matemбtica
Reply
#11

Quote:
Originally Posted by BlueX
View Post
Sim podemos dizer que ele й inteligente, mas eu acho que nгo й isso, eu acho que ele sabe usar bem a lуgica, ele tem lуgica e a lуgica й o mais importante em matemбtica
Resumindo, ele й inteligente.
Reply
#12

Quote:
Originally Posted by BlueX
View Post
Sim podemos dizer que ele й inteligente, mas eu acho que nгo й isso, eu acho que ele sabe usar bem a lуgica, ele tem lуgica e a lуgica й o mais importante em matemбtica
Toda pessoa й inteligente naquilo que se aplica.
Reply
#13

Muito bom...

@Off

Vai demorar o AntiHack o viadin..
Reply
#14

Agora й sua vez, testa lб e me fala por msn os erros..

- Viadim й vocк
Reply
#15

Quote:
Originally Posted by [FeK]DraKiNs
View Post
Agora й sua vez, testa lб e me fala por msn os erros..

- Viadim й vocк
Nem vai da, nгo to em casa to viajando na casa dos parentes e dei uma passada no PC pra acessar o Forum kkk


This forum requires that you wait 120 seconds between posts. Please try again in 49 seconds.
Reply
#16

Quote:
Originally Posted by [FeK]DraKiNs
View Post
Toda pessoa й inteligente naquilo que se aplica.
Concordo!

Bruno, jб pensou em fazer um aplicativo, em fez de ser pela web, um aplicativo, em c, c++ ou vb?
Reply
#17

kk sу sei q ele й foda.

@Tуpic

уtimo como sempre *-*
Reply
#18

Quote:
Originally Posted by BlueX
View Post
Concordo!

Bruno, jб pensou em fazer um aplicativo, em fez de ser pela web, um aplicativo, em c, c++ ou vb?
Claro, inclusive a versгo original tinha sido feita em Delphi O problema й que dai fica ruim de ter que tar baixando, entгo deletei tudo e refiz em javascript, foi feito em poucos minutos. o dMagnus me ajudou a testar !!
Reply
#19

Bom Gostei.
Reply
#20

RESUMINDO
Quote:

PERFEITO!
Seus Codigos Sao Todos Perfect!
Cara Sua Inteligencia e Incrivel!

Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)