2013-11-20 5 views
1

У меня возникла проблема с куском кода в vb.net. В этом поток управления переходит в условие else, даже если значение в if равно правда.условие if истинно, но поток программы переходит в другую часть в vb

Я использовал это в качестве входных данных: 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 (dot) freeimagehosting (dot) net/y6ea3

+4

Пожалуйста, внесите свой код. – varocarbas

+0

Что если условие дает проблемы? –

+0

Третий Если (Convert.ToChar (Convert.ToInt16 (ch) + 4)> "Z" И ch <= "Z") Тогда – user2617874

ответ

0

Это может быть длинный снимок. Но так как вы сказали, что вы преобразовываете старый проект в VS2010, возможно, стоит попробовать.

Возможно, проблема связана не с исходным кодом, а с самой средой. Возможно, что кодировка символов для более старого проекта отличается от того, что установлено в VS2010. Я говорю об этом, потому что стандартная кодировка в VS2005 отличается от того, что установлено в VS2010. В криптологии эти мелочи, такие как метаданные проекта, также играют свою роль, которую многие склонны игнорировать, думая, что что-то не так с их исходным кодом.

Так что проверьте, что конфигурация среды проекта такая же. Специально кодирование (как указано @varocarbas). Играйте с ним некоторое время.