string na byte (hex)

0

Witam potrzebuję funkcji która zamienia string na tablice byte czyli np:
string wej = "01ABFA346"

wynikiem funkcji bedzie tablica:
byte[] wynik = {0x01,0xAB,0xFA,0x34,0x6}

wypociłem coś takiego:

private byte[] ZamienStringNaHEX1(string wejscie)
        {
            byte[] tablica;

            if (wejscie.Length % 2 == 0)
                tablica = new byte[wejscie.Length / 2];
            else
                tablica = new byte[wejscie.Length / 2 + 1];

            for (int i = 0; i < tablica.Length; i ++)
            {
                if (i*2 == wejscie.Length - 1)
                    tablica[j] = Byte.Parse(wejscie.Substring(i*2, 1));
                else
                    tablica[j] = Byte.Parse(wejscie.Substring(i*2, 2));
            }
            return tablica;
        }

ale problem w tym, że nie kiedy pojawi się np "AB" to wywala błąd: "Nieprawidłowy format ciągu wejściowego.". I nie wiem jak to inaczej napisać aby było poprawnie. Ale dla samych cyfr 0-9 działa tak jak powinno.

1

Funkcja Parse spodziewa się, że string będzie składał się z cyfr. Użyj

Byte.Parse(string_do_zmiany, System.Globalization.NumberStyles.AllowHexSpecifier);

1 użytkowników online, w tym zalogowanych: 0, gości: 1