none
Conversion erro C# RRS feed

  • Pergunta

  • Oi galera boa noite a todos vcs ! Bom eu tive um problema ou converter meu codigo vb.net pra c# alguém pode me ajudar ? obrigado a todos vcs !!! ....

    Codigo convertido 

            public byte[] XOREncrypt(byte[] up, string BB2)
            {
                byte[] CL = Encoding.ASCII.GetBytes(BB2);
                VBMath.Randomize();
                int FP = Conversion.Int((255 - 0 + 1) * VBMath.Rnd()) + 1;
                byte[] BA = new byte[up.Length + 1];
                int KA = 0;
                for (int MP = 0; MP <= up.Length - 1; MP++)
                {
                    BA[MP] += System.Convert.ToByte((up[MP] ^ CL[KA]) ^ FP);
                    if (KA == BB2.Length - 1)
                    {
                        KA = 0;
                    }
                    else
                    {
                        KA++;
                    }
                }
                BA[up.Length] = System.Convert.ToByte(112 ^ FP);
                return BA;
            }
    
              

    Foto do codigo convertido pra c#

    segunda-feira, 2 de novembro de 2015 00:47

Respostas

  • Tente o seguinte: faça o que falei antes, faça a referência do Microsoft.VisualBasic e tente isso:

    VBMath.Randomize();
    int FP = 256 * Convert.ToInt32(VBMath.Rnd()) + 1;
    Não tenho certeza exatamente do que pode estar acontecendo, mas vamos tentar abranger os problemas do Random().


    Att., Rafael Simor

    • Marcado como Resposta João Paulo [] quarta-feira, 4 de novembro de 2015 02:17
    segunda-feira, 2 de novembro de 2015 02:29
  • Boa tarde.

    O erro diz que o valor é muito pequeno ou muito grande para o byte.

    Tentes colocar um breaking point (tanto na aplicação C# tanto na VB.NET) e comparar os valores para ver se encontras o problema.


    Att., Rafael Simor

    • Sugerido como Resposta Marcos SJ terça-feira, 3 de novembro de 2015 09:55
    • Marcado como Resposta Marcos SJ terça-feira, 3 de novembro de 2015 16:58
    segunda-feira, 2 de novembro de 2015 17:05

Todas as Respostas

  • Boa noite.

    Para o Randomizer:

    Random rnd = new Random();
    double numX = rnd.NextDouble();

    E não tenho certeza o que faz o Conversion.Int(), porém se for somente conversão para inteiro, no C# a usamos:

    Int32.Parse();
    Caso o código não dê certo mesmo assim, tu também podes adicionar a referência Microsoft.VisualBasic para teu projeto, mas recomendaria isso somente em últimos casos.


    Att., Rafael Simor

    segunda-feira, 2 de novembro de 2015 01:04
  • Oi amigo bom deu erado o random o codigo em vb.net e esse

     Public Function XOREncrypt(ByVal up As Byte(), ByVal BB2 As String) As Byte()
            Dim CL As Byte() = System.Text.Encoding.ASCII.GetBytes(BB2)
            Randomize()
            Dim FP As Integer = Int((255 - 0 + 1) * Rnd()) + 1
            Dim BA(up.Length) As Byte
            Dim KA As Integer
            For MP As Integer = 0 To up.Length - 1
                BA(MP) += (up(MP) Xor CL(KA)) Xor FP
                If KA = BB2.Length - 1 Then KA = 0 Else KA = KA + 1
            Next
            BA(up.Length) = 112 Xor FP
            Return BA
        End Function
    

     
    segunda-feira, 2 de novembro de 2015 01:35
  • Tente usar o rnd.Next() no lugar do .NextDouble().

    Random rnd = new Random();
    int FP = 256*rnd.Next() + 1;


    Att., Rafael Simor

    segunda-feira, 2 de novembro de 2015 01:45
  • Muito obrigado amigo por me ajudar a converter de vb.net pra C# mais me retorna um erro vc acha que seria por causa do rondom que eu removi la me cima ?

     
    segunda-feira, 2 de novembro de 2015 02:15
  • Tente o seguinte: faça o que falei antes, faça a referência do Microsoft.VisualBasic e tente isso:

    VBMath.Randomize();
    int FP = 256 * Convert.ToInt32(VBMath.Rnd()) + 1;
    Não tenho certeza exatamente do que pode estar acontecendo, mas vamos tentar abranger os problemas do Random().


    Att., Rafael Simor

    • Marcado como Resposta João Paulo [] quarta-feira, 4 de novembro de 2015 02:17
    segunda-feira, 2 de novembro de 2015 02:29
  • A referencia nao apresenta erros como assim fazer a referencia ?
    segunda-feira, 2 de novembro de 2015 02:53
  • segunda-feira, 2 de novembro de 2015 02:56
  • No teu projeto tem uma pasta "References", clica com o direito, "Add Reference", "Assemblies/Framework" e procure por Microsoft.VisualBasic, selecione e adicione ao projeto.

    Att., Rafael Simor

    segunda-feira, 2 de novembro de 2015 02:57
  • ok amigo ja fiz deu quase certo ja coloquei a referencia que vc pedio mais o erro continua 

    segunda-feira, 2 de novembro de 2015 03:02
  • Boa tarde.

    O erro diz que o valor é muito pequeno ou muito grande para o byte.

    Tentes colocar um breaking point (tanto na aplicação C# tanto na VB.NET) e comparar os valores para ver se encontras o problema.


    Att., Rafael Simor

    • Sugerido como Resposta Marcos SJ terça-feira, 3 de novembro de 2015 09:55
    • Marcado como Resposta Marcos SJ terça-feira, 3 de novembro de 2015 16:58
    segunda-feira, 2 de novembro de 2015 17:05
  • Claro amigo farei isso assim que poder muito obrigado pela sua ajuda me ajudo muito cara se nu fosse vc eu nao teria entendido nada obrigado mesmo like pra vc !
    quarta-feira, 4 de novembro de 2015 02:17