Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Libreria Dll Algoritmo di Buzz - Class1.vb

Class1.vb

Caricato da: A_butta
Scarica il programma completo

  1. Public Class Class1
  2.  
  3.     Shared Function Scambio(ByVal readStr As String) As String
  4.         Return readStr(3) + readStr(2) + readStr(1) + readStr(0)
  5.     End Function
  6.  
  7.     Shared Function EncodeControl(ByVal readStr As String) As Boolean
  8.         EncodeControl = True
  9.         For i As Integer = 1 To readStr.Length
  10.             If Not ((Asc(readStr(i - 1)) > 31) And (Asc(readStr(i - 1)) < 127)) Then
  11.                 Return False
  12.             End If
  13.         Next
  14.         Return True
  15.     End Function
  16.  
  17.     Shared Function DecodeControl(ByVal readStr As String) As Boolean
  18.         Dim List(30) As Char
  19.         For i As Integer = 0 To 9
  20.             List(i) = New Char
  21.             List(i) = i.ToString
  22.         Next
  23.         Dim k As Integer
  24.         k = 10
  25.         For i As Integer = 65 To 70
  26.             List(k) = New Char
  27.             List(k) = Chr(i)
  28.             k = k + 1
  29.         Next
  30.         List(k) = "%"
  31.         DecodeControl = True
  32.         Dim Control As Boolean = False
  33.         For i As Integer = 1 To readStr.Length
  34.             For t As Integer = 0 To 16
  35.                 If readStr(i - 1) = List(t) Then
  36.                     Control = True
  37.                 End If
  38.             Next
  39.             If Control = True Then
  40.                 Control = False
  41.             Else : Return False
  42.             End If
  43.         Next
  44.         Return True
  45.     End Function
  46.  
  47.     Shared Function Encode(ByVal readStr As String) As String
  48.         Dim stringa, blocco1, blocco2, cars As String
  49.         If readStr = "" Then
  50.             Return "%%"
  51.         Else
  52.             stringa = ""
  53.             blocco1 = ""
  54.             blocco2 = ""
  55.             cars = ""
  56.             For k As Integer = 0 To readStr.Length - 1
  57.                 cars = Convert.ToString(Asc(readStr(k)), 2)
  58.                 While cars.Length <> 8
  59.                     cars = "0" + cars
  60.                 End While
  61.                 For i As Integer = 0 To 3
  62.                     blocco1 = blocco1 + cars(i)
  63.                 Next
  64.                 For i As Int16 = 4 To 7
  65.                     blocco2 = blocco2 + cars(i)
  66.                 Next
  67.                 blocco1 = Scambio(blocco1)
  68.                 blocco2 = Scambio(blocco2)
  69.                 Dim num1 As Integer = Convert.ToInt32(blocco1, 2)
  70.                 stringa = stringa + Convert.ToString(num1, 16)
  71.                 stringa = stringa.ToUpper
  72.                 Dim num2 As Integer = Convert.ToInt32(blocco2, 2)
  73.                 stringa = stringa + Convert.ToString(num2, 16)
  74.                 stringa = stringa.ToUpper
  75.                 blocco1 = ""
  76.                 blocco2 = ""
  77.             Next
  78.             Return stringa
  79.         End If
  80.     End Function
  81.  
  82.     Shared Function DecodeConverter(ByVal readChar As Char) As String
  83.         Dim ToInt As Integer
  84.         Dim ToStr As String
  85.         Dim pass As Integer = Asc(readChar) - 48
  86.         If pass < 10 Then
  87.             ToInt = pass
  88.         Else
  89.             Select Case readChar
  90.                 Case "A"
  91.                     ToInt = 10
  92.                 Case "B"
  93.                     ToInt = 11
  94.                 Case "C"
  95.                     ToInt = 12
  96.                 Case "D"
  97.                     ToInt = 13
  98.                 Case "E"
  99.                     ToInt = 14
  100.                 Case "F"
  101.                     ToInt = 15
  102.             End Select
  103.         End If
  104.         ToStr = Convert.ToString(ToInt, 2)
  105.         If ToStr.Length < 4 Then
  106.             While Not (ToStr.Length = 4)
  107.                 ToStr = "0" + ToStr
  108.             End While
  109.         End If
  110.         Return ToStr
  111.     End Function
  112.  
  113.     Shared Function BinToDec(ByVal num As Integer) As String
  114.         If (num = 0) Or (num = 1) Then
  115.             Return num
  116.         Else
  117.             Dim i As Integer = 1
  118.             Dim cod As String = num.ToString
  119.             Dim som As Integer = Asc(cod(0)) - 48
  120.             For i = 2 To (num.ToString).Length
  121.                 som = (som * 2) + (Asc(cod(i - 1)) - 48)
  122.             Next
  123.             Return som
  124.         End If
  125.     End Function
  126.  
  127.     Shared Function Decode(ByVal readStr As String) As String
  128.         Dim s, decodeStr As String
  129.         decodeStr = ""
  130.         If readStr = "%%" Then
  131.             Return Nothing
  132.         Else
  133.             Dim i As Integer = 1
  134.             While i < readStr.Length
  135.                 s = Scambio(DecodeConverter(readStr(i - 1))) + Scambio(DecodeConverter(readStr(i)))
  136.                 Dim int As Integer = Convert.ToInt32(s)
  137.                 decodeStr = decodeStr + Chr(BinToDec(int))
  138.                 i = i + 2
  139.             End While
  140.             If (readStr.Length Mod 2) <> 0 Then
  141.                 decodeStr = decodeStr + "\"
  142.             End If
  143.         End If
  144.         Return decodeStr
  145.     End Function
  146. End Class