COMPARACAO DE STRINGS

USUARIO.EXCLUIDOS 07/06/2004 21:44:15
#28631
Pessoal, no meu programa estou tentando comparar duas strings... mas ele num ta aceitando


'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?
USUARIO.EXCLUIDOS 11/06/2004 21:29:21
#29273
Resposta escolhida
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) ?
USUARIO.EXCLUIDOS 11/06/2004 21:48:09
#29277
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
USUARIO.EXCLUIDOS 11/06/2004 22:05:33
#29281
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 !
USUARIO.EXCLUIDOS 12/06/2004 17:52:01
#29350

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.
USUARIO.EXCLUIDOS 14/06/2004 21:30:15
#29617

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