COMPARACAO DE STRINGS
Pessoal, no meu programa estou tentando comparar duas strings... mas ele num ta aceitando
Alguém poderia me ajudar? Poderia ter outra forma de se comparar Strings?
'DIGAMOS QUE A VARIà ÂVEL "Comparar" é uma string de nome "senhA"
'E QUE NO MEU Text1.text esteja digitado também "senhA"
'daà eu faço:
private sub command1_click()
if text1.text <> senhA then MsgBox "A confirmação da senha atual está incorreta":exit sub
'Bem, Jà  QUE O TXTSENHA ESTà  IGUAL, ERA PARA NÃO EXIBIR A MENSAGEM, MAS EXIBE, NAO SEI PORQUE
'codigo
'codigo
'codigo
end sub
Alguém poderia me ajudar? Poderia ter outra forma de se comparar Strings?
GEWTON,
Depure a sua aplicação com F8 e na janela immediate imprima o valor das variáveis e seus comprimentos assim:
debug.? Len(text1.Text); text1.Text
debug.? Len(BuscaRegistro); BuscaRegistro
debug.? Text1.Text = BuscaRegistro
Qual a definição da variavel BuscaRegistro ?
Por acaso ela não esta definida em dois lugares (na seção General e na Sub ou Function do form) ?
Depure a sua aplicação com F8 e na janela immediate imprima o valor das variáveis e seus comprimentos assim:
debug.? Len(text1.Text); text1.Text
debug.? Len(BuscaRegistro); BuscaRegistro
debug.? Text1.Text = BuscaRegistro
Qual a definição da variavel BuscaRegistro ?
Por acaso ela não esta definida em dois lugares (na seção General e na Sub ou Function do form) ?
Qual a definição da variavel BuscaRegistro ?
O que é exibido nas message boxes abaixo:
MsgBox Len(text1.Text) & " '" & text1.Text & "'"
MsgBox Len(BuscaRegistro) & " '" & BuscaRegistro & "'"
MsgBox Text1.Text = BuscaRegistro
O que é exibido nas message boxes abaixo:
MsgBox Len(text1.Text) & " '" & text1.Text & "'"
MsgBox Len(BuscaRegistro) & " '" & BuscaRegistro & "'"
MsgBox Text1.Text = BuscaRegistro
O codigo que pedi para vc executar é para exibir o tamanho e conteúdo armazenado na variável buscaRegsitro e na text box. Se realmente Text1.Text for igual à  BuscaRegistro as linhas 1 e 2 irão imprimir valores idênticos e a linha 3 irá imprimir True.
1) MsgBox Len(text1.Text) & " '" & text1.Text & "'"
2) MsgBox Len(BuscaRegistro) & " '" & BuscaRegistro & "'"
3) MsgBox Text1.Text = BuscaRegistro
Quanto a definição eu me referi ao tipo usado, pois se vc estiver definindo a variavel buscaRegistro assim (por exemplo): Dim buscaRegistro As String * 30 o teste "Text1.Text = BuscaRegistro" nunca sera verdadeiro.
Se nada disso resolver revise a sua rotina decodificação !
1) MsgBox Len(text1.Text) & " '" & text1.Text & "'"
2) MsgBox Len(BuscaRegistro) & " '" & BuscaRegistro & "'"
3) MsgBox Text1.Text = BuscaRegistro
Quanto a definição eu me referi ao tipo usado, pois se vc estiver definindo a variavel buscaRegistro assim (por exemplo): Dim buscaRegistro As String * 30 o teste "Text1.Text = BuscaRegistro" nunca sera verdadeiro.
Se nada disso resolver revise a sua rotina decodificação !
A tua rotina de codificação/decodificação em base64 deve estar deixando dois caracteres nulos (zeros binários) no final da string.
Antes de executar o SaveSetting remove esses zeros binários, assim:
BuscaRegistro = Replace(BuscaRegistro, vbNullChar, "")
e repita o teste com as msgBoxes novamente.
Se não tiver a constante vbNullChar no VB5, use:
BuscaRegistro = Replace(BuscaRegistro, Chr$(0), "")
Outra maneira sem usar o Replace:
If Instr(1, BuscaRegistro, chr$(0)) > 0 Then BuscaRegistro = Left$(BuscaRegistro, Instr(1, BuscaRegistro, chr$(0)) - 1)
Tópico encerrado , respostas não são mais permitidas