Vamos lá William, vamos ver se eu entendi a sua necessidade, você quer toda vez que clicar em "Change Password" mudar no .txt a informação da senha, correto?
Então, utilizando o padrão por ti compartilhando:
1|F444|JHON|JHON|01/10/2010|444|AV. FULANO DE TAL 35|BOSS|NEW_USER|NEW_USER
Considerei a informação "F444" depois do primeiro "|", como uma informação imutável e única, ou seja, cada funcionário tem o seu. Então toda vez que preencher as informações do Frame3 e clicar no botão para mudar a senha, o valor preenchido no campo do textbox "TxtChangeID" será procurado no .txt dentro da pasta register e modificará somente na linha em que houver a mesma informação, a informação que será mudada será somente o "444" pela informada no textbox "TxtNewPass", o campo depois da data, pois creio eu que seja a senha, caso não seja me informe qual é o campo da senha rsrs.
Segue o código:
Private Sub TextFile_FindReplace()
Dim valores() As String, linha As String, x As String, IDdoFuncionario As String, NovaSenha As String
IDdoFuncionario = frmLogin.Frame3.TxtChangeID.Value
NovaSenha = frmLogin.Frame3.TxtNewPass.Value
Open ThisWorkbook.Path & "REGISTERusers.txt" For Input As #1
Do While EOF(1) = False
Line Input #1, linha
If linha <> "" Then
valores = Split(linha, "|")
If valores(1) = UCase(IDdoFuncionario) Then
valores(5) = NovaSenha
linha = Join(valores, "|")
End If
End If
x = x + linha + vbNewLine
Loop
Close #1
Open ThisWorkbook.Path & "REGISTERusers.txt" For Output As #1
Print #1, x
Close #1
End Sub
Obs: O código lhe permite trabalhar com mais de um cadastro sem problema nenhum, caso a informação do ID na companhia seja único.
Postado : 05/11/2019 6:47 pm