Zamiana hex w stringu na dec w stringu

0

Witam, mam problem a mianowicie w swoim programie otrzymuję wartości w kodzie szesnastkowym zapisane w stringu które muszę potem wpisać do textboxa w kodzie dziesiętnym. Na przykłąd otrzymaną wartość:

AA 10 00 FF FF FF FF FF FF FF FF FF FF FF A5

muszę rozbić i pojedyncze elementy zamienić na kod dziesiętny i zapisać w stringu np czwarty element "FF" -string tab[3] ="255".
Do rozbijania wartości wykorzystałem metodę Regex, tak to wygląda:

string[] tabdanych = Regex.Split(dane, pattern);

gdzie tabdanych to moja tablica z pojedynczymi elementami, dane to string z powyższym ciągiem danych, a pattern zadeklarowany następująco:

string pattern = @"\s?";
1
string input = "AA 10 00 FF FF FF FF FF FF FF FF FF FF FF A5";
Console.WriteLine(string.Join(" ", input.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).Select(x => Convert.ToInt32(x, 16).ToString())));
0
Mateusz napisał(a):
string input = "AA 10 00 FF FF FF FF FF FF FF FF FF FF FF A5";
Console.WriteLine(string.Join(" ", input.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).Select(x => Convert.ToInt32(x, 16).ToString())));

Dzięki za pomoc, jednak nie rozwiązało to mojego problemu albo też po części nie do końca wiem jak to wykorzystać w programie tzn. wyrzuciłem Console.WriteLine i w takiej formie wkleiłem do programu:

string.Join(" ", input.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).Select(x => Convert.ToInt32(x, 16).ToString()));

następnie napisałem textBox5.Text = Char.ToString(input[code> następnie napisałem ` textBox5.Text = Char.ToString(input[6]);
textBox6.Text = Char.ToString(input[7]);
textBox7.Text = Char.ToString(input[8]);
textBox8.Text = Char.ToString(input[9]);
textBox9.Text = Char.ToString(input[10]);
textBox10.Text = Char.ToString(input[11]);
textBox11.Text = Char.ToString(input[12]);
textBox12.Text = Char.ToString(input[13]);

 bo tylko pary liczb 6 - 13 mnie interesują
przy danych `F0 00 28 FF FF 01 FF FF 1E A5 AA 04 01 03 02` do textboxów wpisało mi wartości textbox6 - 2, textbox7 - 8, textbox8 - spacja, textbox9 - F itd.
Więc mimo tego nie zamieniło mi tych liczb na dziesiętne ..
1
var array = input.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).Select(x => Convert.ToInt32(x, 16).ToString()).ToArray()

textBox5.Text = array [6]; 
textBox6.Text = array [7];
textBox7.Text = array [8];
textBox8.Text = array [9];
textBox9.Text = array [10];
textBox10.Text = array [11];
textBox11.Text = array [12];
textBox12.Text = array [13]; 

TextBoxy lepiej trzymać w jakieś tablicy i wtedy możesz ładnie załatwić to pętlą.

0

Super :) Teraz działa jak należy :)
To mam jeszcze ostatnie pytanie, ponieważ nie długo będę musiał zredukować liczbę zmiennych więc z 1 bajta będę chciał przejść na 2 bajty tzn. zamiast do jednej zmiennej wpisywać wartości 0-255, będę musiał wpisywać 0-65 535 np zamiast sczytywać pojedyncze FF jako 255 i wpisywać to do textboxa, będzie sczytywać FF FF i do textboxa wrzucać wartość 65 535.
Czy w jakiś łatwy sposób można to przerobić ?

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