у меня проблема с фрагментом кода в vb.net. В этом поток управления переходит к условию else, даже если значение в if истинно.
Я использовал это как ввод: WD-WXK0AC9T7316
код:
Private Function EncryptHDKey(ByVal Hd_no As String) As String
Dim EncryptedString As String = ""
For Each ch As Char In Hd_no
If ((ch >= "0" And ch <= "9") Or (ch >= "a" And ch <= "z") Or (ch >= "A" And ch <= "Z")) Then
If (Convert.ToChar((Convert.ToInt16(ch) + 4)) > "9" And ch <= "9") Then
EncryptedString = EncryptedString + Convert.ToChar((Convert.ToInt16(ch) + 3) - Convert.ToInt16("9"))
Else
If (Convert.ToChar((Convert.ToInt16(ch) + 4)) > "z" And ch <= "z") Then
EncryptedString = EncryptedString + Convert.ToChar(Microsoft.VisualBasic.Asc("a") + (Convert.ToInt16(ch) + 3) - Microsoft.VisualBasic.Asc("z"))
Else
If (Convert.ToChar(Convert.ToInt16(ch) + 4) > "Z" And ch <= "Z") Then
EncryptedString = EncryptedString + Convert.ToChar(Microsoft.VisualBasic.Asc("A") + (Convert.ToInt16(ch) + 3) - Microsoft.VisualBasic.Asc("Z"))
Else
EncryptedString = EncryptedString + Convert.ToChar(Convert.ToInt16(ch) + 4)
End If
End If
End If
Else
EncryptedString = EncryptedString + ch
End If
Next
Return (EncryptedString)
End Function
У меня еще нет прав на загрузку скриншотов, поэтому я загрузил скриншот в это место. www(точка)freeimagehosting(точка)net/y6ea3
(ch >= "a" = False) when ch = "W"c
- person Nadeem_MK   schedule 20.11.2013If (Convert.ToChar((Convert.ToInt16(ch) + 4)) > "9" And ch <= "9") Then
используется также для букв (что приводит к неожиданным результатам), аIf (Convert.ToChar((Convert.ToInt16(ch) + 4)) > "z" And ch <= "z") Then
используется как с цифрами, так и с большими буквами (которые следуют за буквой). другой порядок, чем маленькие заглавные буквы). Резюмируя: это условие более или менее похоже на ваш вопрос: бессмысленно (без обид)... - person varocarbas   schedule 20.11.2013