Error converting Delphi function to C #

1

Good evening everyone!

I'm trying to convert a Delphi function to C # and I'm getting it, where am I going wrong?

Delphi Code:

function TCriptografa.CriptoBinToText(SText: string): string;
var
  SPos: Integer;
  BKey: Byte;
  S: string[1];
begin
  Result := '';
  {converte}
  for SPos := 1 to Length(SText) do
    begin
      S := Copy(FKey, (SPos mod Length(FKey)) + 1, 1);
      BKey := Ord(S[1]) + SPos;
      Result := Result + Chr(Ord(SText[SPos]) xor BKey);
    end;
  {inverte Result}
  Result := Invert(Result);
end;

function TCriptografa.HexToDec(Number: string): Byte;
begin
  Number := UpperCase(Number);
  Result := (Pos(Number[1], '0123456789ABCDEF') - 1) * 16;
  Result := Result + (Pos(Number[2], '0123456789ABCDEF') - 1);
end;


function TCriptografa.CriptoHexToText(SText: string): string;
var
  SPos: Integer;
begin
  Result := '';
  for SPos := 1 to (Length(SText) div 2) do
    Result := Result + Chr(HexToDec(Copy(SText, ((SPos * 2) - 1), 2)));
  {converte para texto}
  Result := CriptoBinToText(Result);
end;

C # code

        public static string BinaryToString(string data)
        {
            List<Byte> byteList = new List<Byte>();

            for (int i = 0; i < data.Length; i += 8)
            {
                byteList.Add(Convert.ToByte(data.Substring(i, 8), 2));
            }
            return Encoding.ASCII.GetString(byteList.ToArray());
        }

        public static string FromHexString(string hexString)
        {
            var bytes = new byte[hexString.Length / 2];
            for (var i = 0; i < bytes.Length; i++)
            {
                bytes[i] = Convert.ToByte(hexString.Substring(i * 2, 2), 16);
            }

            return Encoding.Unicode.GetString(bytes); 
        }


        public static string CriptoHexToText(string Texto)
        {
            string sResult = "";
            for (int i = 0; i <= (Texto.Length-1)/2; i++)
            {
                sResult += Texto.Substring(i, 2);
                sResult += FromHexString(sResult);
            }
            sResult = BinaryToString(sResult);

            return sResult;
        }

You are returning the error: No recognizable digits were found.

    
asked by anonymous 05.12.2018 / 23:58

0 answers