terça-feira, 21 de fevereiro de 2017

Depurando JavaScript com Google Chrome

É Certo que em algum momento você vai desejar depurar uma parte do código. Em linguagens que utilizam IDE como Visual Studio, NetBeans e outras isso é bem mais fácil. Mas o que dizer em depurar o código em linguagens Client-Side como o JavaScript, em outras palavras em linguagens que executam o código no lado do cliente e não no lado do servidor.
Não fique preocupado, isso é bem fácil. Veja o exemplo abaixo:
Primeiramente, vamos utilizar para este exemplo o navegador Chrome.
1 – Com o Google Chrome aberto na página do seu Sistema ou Site clique em F12 para abrir o console do navegador.

2 - Clique em console


Figura 1: Console do Google Chrome

Se você desejar fazer um breakpoint, clique sobre o arquico 2.html (ou no seu caso o arqui js) será aberta a janela Source.

Figura 2: Source do Google Chrome

Clica sobre a linha que deseja fazer o teste e pressione F11 para navegar entre o código. 
Para adicionar um watch para uma variável qualquer, basta selecionar a variável (em tempo de depuração, ou seja, enquanto o depurador estiver sendo executado), clicar com o botão direito do mouse depois “Add selected text to Watches”.

Figura 3: Add selected text to watches


Figura 4: Janela Watch do Google Chrome

Para navegar pressione F11.

terça-feira, 7 de fevereiro de 2017

EXCEL - REMOVER ACENTOS

CRIANDO A UDF

A UDF é uma macro (VBA) porém com características diferentes pois aparecerá como uma função normal do Excel, como um PROCV por exemplo.
  1. Aperte ALT + F11 para abrir o editor VBA
  2. No menu da esquerda clique com o botão direito do mouse crie um novo módulo
  3. Escreva o código a seguir no quadro que se abre a direita.
Function Acento(Caract As String)
 Dim A As String
 Dim B As String
 Dim i As Integer
 Const AccChars = "ŠŽšžŸÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðñòóôõöùúûüýÿ"
 Const RegChars = "SZszYAAAAAACEEEEIIIIDNOOOOOUUUUYaaaaaaceeeeiiiidnooooouuuuyy"
 For i = 1 To Len(AccChars)
 A = Mid(AccChars, i, 1)
 B = Mid(RegChars, i, 1)
 Caract = Replace(Caract, A, B)
 Next
 Acento = Caract
End Function
Siga os passos conforme a imagem abaixo:
1
2
E é só isso, está pronto. Antes de irmos para o exemplo prático, vamos entender como funciona essa macro.

COMO ESTA MACRO FUNCIONA

Normalmente quando criamos uma macro ela começa com Sub ou Private Sub mas você deve ter notado que esta começa com Function pois se trata de uma UDF. Esta função foi nomeada de Acento e é assim que iremos nos referenciar a ela dentro do Excel, e possui apenas um argumento, chamado Caract que nada mais é do que o texto ou palavra com acento. Para fins comparativos, a função PROCV utiliza 4 argumentos, separados pelo ; (ponto e virgula), a função Acento, que acabamos de criar, possui apenas um.
Primeiro definimos 3 variáveis que serão utilizadas pela função, são elas as variáveis AB e i além de duas constantes chamadas de AccChars e  RegChars.
For i = 1 To Len(AccChars)
Significa que um certo código será repetido enquanto a variável i for menor que o número de caracteres presentes na constante AccChars.
A = Mid(AccChars, i, 1) e B = Mid(RegChars, i, 1)
Significam que a variável A será a letra que estiver na posição i da variável AccChars. Quando i for igual a 1 então A será igual a primeira letra de de AccChars, isso se repete até que acabem as letras de AccChars. O mesmo acontece bom B porém ao invés de ser uma letra em AccChars será ma letra presente em RegChars.
Caract = Replace(Caract, A, B)
Este trecho faz com que sempre que a palavra ou texto que se deseja remover os acentos, tiver uma letra presente em AccChars, está letra (com acento) é substituída pela mesma letra presente em RegChars (sem acento). Isso é repetido até que todas as letras presentes em ACCChars e RegChars sejam substituídas.
Acento = Caract
Faz com que o resultado da função Acento seja igual a Caract que teve todas suas letras com acentos substituídas por letras sem acento.

EXEMPLO PRÁTICO

A imagem abaixo mostra uma pequena lista de palavras com acento e o resultado obtido com a UDF Acento.
4