Partage
  • Partager sur Facebook
  • Partager sur Twitter

VB ---> C#

Sujet résolu
    19 juin 2011 à 19:06:55

    Hello amis développeurs !
    Je coince sur une conversion d'un bout de code en VB en C#.
    Voici le code en question :
    Public Shared Function GetCellNum(ByVal CellChars As String) As Integer
    
                Dim hash As String = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_"
    
                Dim NumChar1 As Integer = hash.IndexOf(CellChars(0)) * hash.Length
                Dim NumChar2 As Integer = hash.IndexOf(CellChars(1))
    
                Return NumChar1 + NumChar2
    
            End Function
    
            Public Shared Function GetCellChars(ByVal CellNum As Integer) As String
    
                Dim hash As String = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_"
    
                Dim CharCode2 As Integer = (CellNum Mod hash.Length)
                Dim CharCode1 As Integer = (CellNum - CharCode2) / hash.Length
    
                Return hash(CharCode1) & hash(CharCode2)
    
            End Function
    
            Public Shared Function GetDirChar(ByVal DirNum As Integer) As String
    
                Dim hash As String = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_"
                If DirNum >= hash.Length Then Return ""
                Return hash(DirNum)
    
            End Function
    
            Public Shared Function GetDirNum(ByVal DirChar As String) As Integer
    
                Dim hash As String = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_"
                Return hash.IndexOf(DirChar)
    
            End Function
    


    Et voici le code converti :

    public static int GetCellNum(string CellChars)
    
    {
    
      string hash = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_";
    
    
    
      int NumChar1 = hash.IndexOf(CellChars(0)) * hash.Length;
    
      int NumChar2 = hash.IndexOf(CellChars(1));
    
    
    
      return NumChar1 + NumChar2;
    
    
    
    }
    
    
    
    public static string GetCellChars(int CellNum)
    
    {
    
    
    
      string hash = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_";
    
    
    
      int CharCode2 = (CellNum % hash.Length);
    
      int CharCode1 = (CellNum - CharCode2) / hash.Length;
    
    
    
      return hash(CharCode1) + hash(CharCode2);
    
    
    
    }
    
    
    
    public static string GetDirChar(int DirNum)
    
    {
    
    
    
      string hash = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_";
    
      if (DirNum >= hash.Length) return ""; 
    
      return hash(DirNum);
    
    
    
    }
    
    
    
    public static int GetDirNum(string DirChar)
    
    {
    
    
    
      string hash = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_";
    
      return hash.IndexOf(DirChar);
    
    
    
    }
    


    Le rendu a l'air correct, mais j'ai des erreurs du genre "is a variable but i used like a method".
    Voici la liste des erreurs :

    'CellChars' is a 'variable' but is used like a 'method' C:\Users\Nighty Night\Desktop\XXX\XXX\Common.cs 213 41 Project XXX
    'CellChars' is a 'variable' but is used like a 'method' C:\Users\Nighty Night\Desktop\XXX\XXX\Common.cs 215 41 Project XXX
    'hash' is a 'variable' but is used like a 'method' C:\Users\Nighty Night\Desktop\XXX\XXX\Common.cs 242 20 Project XXX
    'hash' is a 'variable' but is used like a 'method' C:\Users\Nighty Night\Desktop\XXX\XXX\Common.cs 242 38 Project XXX
    'hash' is a 'variable' but is used like a 'method' C:\Users\Nighty Night\Desktop\XXX\XXX\Common.cs 259 20 Project XXX

    Pouvais-vous m'aider ? :)


    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      19 juin 2011 à 19:20:18

      Ca, c'est la syntaxe du VB :
      monTableau(0)
      

      signifie :
      monTableau[0]
      

      Le problème, c'est qu'il n'y a pas de différence avec les méthodes. C'est de là que viennent tes erreurs ; remplace les parenthèses par des crochets là où il y a des erreurs ;)
      • Partager sur Facebook
      • Partager sur Twitter
        19 juin 2011 à 19:27:57

        Merci Aethec ! Super sa a corrigé pas mal d'erreur :) Cependant, il en apparait 2 autres :

        Cannot implicitly convert type 'char' to 'string' C:\Users\Nighty Night\Desktop\XXX\XXX\Common.cs 249 20 Project XXX
        Cannot implicitly convert type 'int' to 'string' C:\Users\Nighty Night\Desktop\XXX\XXX\Common.cs 232 20 Project XXX

        As-tu une idée ?
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          19 juin 2011 à 21:36:10

          Ajoute un ToString() aux deux (qui, si je me trompe pas, doivent être hash[DirNum] et hash.IndexOf(DirChar) )
          • Partager sur Facebook
          • Partager sur Twitter
            19 juin 2011 à 21:40:58

            Super sa fonctionne ! Merci beaucoup Aethec :D
            • Partager sur Facebook
            • Partager sur Twitter
              20 juin 2011 à 9:58:58

              Je n'ai jamais eut l'occasion de l'utiliser mais il existe un convertisseur de langage .NET

              http://www.developerfusion.com/tools/c [...] vb-to-csharp/

              Il y aura peut être quelques coquilles mais ça te fait le plus gros du boulet ;)
              • Partager sur Facebook
              • Partager sur Twitter

              VB ---> C#

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown