terça-feira, 20 de outubro de 2015

Função em Excel para transformar um número em binário com até 32 bits

Public Function NumTo32Bits(Numero As String) As String
    Dim Valor As Double
    Dim Resto(31) As Double
    Dim Dividendo(31) As Long
    Dim iContador As Integer
    Dim Aux As String
   
   
    'Verifica se o número pode ser convertido
    If IsNumeric(Numero) Then
        Valor = CDbl(Numero)
    Else
        NumTo32Bits = "Valor incompatível"
        Exit Function
    End If
   
    'Efetua a conversão
    For iContador = 0 To 31
        Resto(iContador) = Valor - (Int(Valor / 2) * 2)
        Dividendo(iContador) = Fix(Valor / 2)
        Valor = Dividendo(iContador)
    Next
   
    'Pega os bits na ordem inversa e retorna
    For iContador = 31 To 0 Step -1
        Aux = Aux & Resto(iContador)
    Next iContador
   
    NumTo32Bits = Aux
   
End Function

quinta-feira, 8 de outubro de 2015

Programa para cálculo de Resistores de 4 faixas

Download
 

Tornar o fundo de uma imagem transparente em VB.NET

Private Sub form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

     Dim imagem As New Bitmap("c:\imagem.jpg")

     imagem.MakeTransparent(Color.White) 'Para colocar a cor branca como transparente

     picturebox1.Image = imagem          'Carrega a imagem para um PictureBox

End Sub
 
 

Função em VBA no Process Book para escrever um valor em um tag

Fazer referência á Biblioteca: PISDK 1.3 Type Library
     Menu Tools --> References

Public Sub EscreveValor(NomeTag As String, Valor As Variant)
    Dim srv As Server
    Dim tag As PIPoint
    Dim timestamp As String
    Dim startTime As String
    
Set srv = PISDK.Servers.DefaultServer
    startTime = srv.servertime

    Set tag = srv.PIPoints(NomeTag)
    Tag.Data.UpdateValue Valor, startTime, dmReplaceDuplicates
End Sub

Função em VBA no Process Book para ler o TimeStamp de um tag

Fazer referência á Biblioteca: PISDK 1.3 Type Library
     Menu Tools --> References
Function LeTimeStamp(NomeDoTag As String) As String
    Dim tag As PIPoint
    Dim srv As Server
    Dim timestamp As Variant
   
    Set srv = Servers("TADCIPI01")
   
    Set tag = srv.PIPoints(NomeDoTag)
   
    timestamp = tag.Data.Snapshot.timestamp.LocalDate
       
    LeTimeStamp = timestamp
End Function

Função em VBA no ProcessBook para ler o valor de um tag

Fazer referência á Biblioteca: PISDK 1.3 Type Library
     Menu Tools --> References
 
Function LeValor(NomeDoTag As String) As String
    Dim tag As PIPoint
    Dim srv As Server
    'Dim Valor As PIValues
    Dim Valor As Variant
    Dim timestamp As Variant
   
    Set srv = Servers("TADCIPI01")
   
    Set tag = srv.PIPoints(NomeDoTag)
   
    Valor = tag.Data.Snapshot.Value
    
    'Set Valor = Tag.Data.Snapshot.Value
   
    If Valor <> "Bad" Then
        LeDado = Valor
    Else
        LeDado = "-1"
    End If
End Function

terça-feira, 13 de janeiro de 2015

O Campo TTL do Comando PING



TTL – É um campo existente no cabeçalho do Pacote IP que tem por finalidade evitar que o mesmo  fique rodando em loop infinito na rede. Ele é decrementado de uma unidade por segundo toda vez que passa por uma gateway.

Pois bem, há uma certa confusão com relação ao TTL que faz muita gente relaciona-lo com o numero de saltos, visto que, ao passar por cada gateway, ao menos um valor de TTL deve ser decrementado, ainda que o pacote não tenha ficado por lá por 1 segundo. Entretanto, o roteador pode decrementar mais de uma unidade TTL por segundo que este pacote tenha permanecido por lá. Assim, o TTL realmente expressa unidades de tempo e não de saltos”
http://netfindersbrasil.blogspot.com.br/2009/12/entendendo-o-campo-ttl-time-to-live.html


O padrão de alguns sistemas operacionais para o campo TTL do Ping:
·         UNIX – Valor = 255
·         WINDOWS – Valor = 128
·         LINUX – Valor = 64

Este campo pode ser usado por um invasor para descobrir o sistema operacional usado. Para evitar isto, pode-se alterar o valor do TTL padrão dificultando um pouco a vida dos invasores.

Para alterar o o valor de TTl no Windows, é necessário alterar o registro:
1       Iniciar – executar – regedit.exe
2              Localize a seguinte chave:
   HKEY_LOCAL_MACHINE\SYSTEM\CorrentControlSet\Services\Tcpip\Parameters
3  
   Localize a DWORD chamado DefaultTTL e edite o seu valor
Se ela não existir, Clique em Editar, Novo – Valor da Cadeia de Caracteres, depois coloque o valor desejado para o TTL.

Função Excel para retornar o último dia do mês

Function UltimoDiaDoMes(Ano As Integer, Mes As Integer) As Integer
    '1) Para um ano ser bisexto, ele deve ser divisível por 4,
    '   não pode ser por 100, exceto se for por 400
    '2) Retorna -1 se o mês for menor que 1 ou maior que 12
    Dim bEbissexto As Boolean
  
    If Ano Mod 4 = 0 Then
        If Ano Mod 100 = 0 Then
            If Ano Mod 400 = 0 Then
                bEbissexto = True
            Else
                bEbissexto = False
            End If
        Else
            bEbisexto = True
        End If
    Else
        bEbissexto = False
    End If
    Select Case Mes
        Case 1                              'Janeiro
            UltimoDiaDoMes = 31
        Case 2                              'Fevereiro
            If bEbissexto = True Then
                UltimoDiaDoMes = 29
            Else
                UltimoDiaDoMes = 28
            End If
        Case 3                              'Março
            UltimoDiaDoMes = 31
        Case 4                              'Abril
            UltimoDiaDoMes = 30
        Case 5                              'Maio
            UltimoDiaDoMes = 31
        Case 6                              'Junho
            UltimoDiaDoMes = 30
        Case 7                              'Julho
            UltimoDiaDoMes = 31
        Case 8                              'Agôsto
            UltimoDiaDoMes = 31
        Case 9                              'Setembro
            UltimoDiaDoMes = 30
        Case 10                             'Outubro
            UltimoDiaDoMes = 31
        Case 11                             'Novembro
            UltimoDiaDoMes = 30
        Case 12                             'Dezembro
            UltimoDiaDoMes = 31
        Case Else
            UltimoDiaDoMes = -1
    End Select
End Function