Guest User

Untitled

a guest
Aug 10th, 2018
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Public UsuarioSessao As String
  2.  
  3. Public Type UserHeader
  4. Username As String * 32
  5. Password As String * 64
  6. End Type
  7.  
  8. Public Type LoginStruct
  9.  Count As Long          '4 bytes
  10. Users() As UserHeader  'cada item vai ter 96 bytes
  11. End Type
  12.  
  13. Public Const LoginFileName = "C:\Users\ATHLONX264\Documents\SISCEV\sistema.dat" 'Altere isso antes de testar. É aonde será gravado o arquivo de login.
  14. Public Sub CriaArquivo()
  15. 'Use isso antes de testar o programa.
  16. 'Este procedimento cria o arquivo de login
  17.  
  18. Dim BlankLoginFile As LoginStruct
  19. Open LoginFileName For Binary As #1
  20. Put #1, , BlankLoginFile
  21. Close #1
  22. End Sub
  23. Public Sub Cadastra(ByVal Nome As String, ByVal Senha As String)
  24. 'Este procedimento cadastra um usuário.
  25. 'Codifique a senha antes de passar o argumento Senha.
  26.  
  27. Dim ExistingLoginFile As LoginStruct
  28. Open LoginFileName For Binary As #1
  29. Get #1, , ExistingLoginFile
  30. Close #1
  31.  
  32. ReDim Preserve ExistingLoginFile.Users(ExistingLoginFile.Count)
  33.  
  34. ExistingLoginFile.Users(ExistingLoginFile.Count).Username = Nome
  35. ExistingLoginFile.Users(ExistingLoginFile.Count).Password = Senha
  36. ExistingLoginFile.Count = ExistingLoginFile.Count + 1
  37.  
  38. Open LoginFileName For Output As #1
  39. Close #1 'Isto apaga o arquivo para poder reescrever
  40.  
  41. Open LoginFileName For Binary As #1
  42. Put #1, , ExistingLoginFile
  43. Close #1
  44. End Sub
  45. Function Codifica(ByVal Senha As String) As String
  46. 'Esta função codifica de forma básica.
  47. 'Exemplo: "teste" vira "futfu"
  48.  
  49. Dim Resultado As String
  50.     For i = 1 To Len(Senha)
  51.     Resultado = Resultado & Chr(Asc(Mid(Senha, i, 1)) + 1)
  52.     Next i
  53. Resultado = StrReverse(Resultado)
  54. Codifica = Resultado
  55. End Function
  56. Sub RemoverUsuário(Nome As String)
  57. 'Este procedimento remove um usuário pelo seu login.
  58.  
  59. Dim ExistingLoginFile As LoginStruct
  60. Dim NewLoginFile As LoginStruct
  61.  
  62. Open LoginFileName For Binary As #1
  63. Get #1, , ExistingLoginFile
  64. Close #1
  65.  
  66.     If ExistingLoginFile.Count > 1 Then
  67.     NewLoginFile.Count = ExistingLoginFile.Count - 1
  68.     Dim j As Long
  69.     j = 0
  70.         For i = 0 To ExistingLoginFile.Count - 1
  71.             If ExistingLoginFile.Users(i).Username <> Nome Then
  72.             NewLoginFile.Users(j).Username = ExistingLoginFile.Users(i).Username
  73.             NewLoginFile.Users(j).Password = ExistingLoginFile.Users(i).Password
  74.             j = j + 1
  75.             End If
  76.         Next
  77.     End If
  78.  
  79. Open LoginFileName For Output As #1
  80. Close #1 'Isto apaga o arquivo para poder reescrever
  81.  
  82. Open LoginFileName For Binary As #1
  83. Put #1, , NewLoginFile
  84. Close #1
  85. End Sub
  86. Function VerificaSenha(ByVal Nome As String, ByVal Senha As String) As Boolean
  87. 'Este procedimento verifica login. True se a senha é correta, e false se não é.
  88. 'Codifique a senha antes de passar o argumento Senha.
  89.  
  90. Dim ExistingLoginFile As LoginStruct
  91. Open LoginFileName For Binary As #1
  92. Get #1, , ExistingLoginFile
  93. Close #1
  94.  
  95.   For i = 0 To ExistingLoginFile.Count - 1
  96.      If Nome = Trim(ExistingLoginFile.Users(i).Username) Then
  97.          If Senha = Trim(ExistingLoginFile.Users(i).Password) Then
  98.          VerificaSenha = True
  99.          Else
  100.          VerificaSenha = False
  101.          End If
  102.      Exit Function
  103.      End If
  104.   Next
  105. End Function
Add Comment
Please, Sign In to add comment