Laden...

String mit Hexzahl in int konvertieren

Erstellt von snowy vor 14 Jahren Letzter Beitrag vor 14 Jahren 1.225 Views
S
snowy Themenstarter:in
143 Beiträge seit 2009
vor 14 Jahren
String mit Hexzahl in int konvertieren

Hallo,

Ich habe eine einfache Frage. Was ist noch bei meiner Konvertierung eines Textbox Inhaltes in eine uint Zahl verkehrt?


uint ID=0;
ID=Convert.ToUInt32(tbFiltID.Text.ToString());

In der Textbox steht ein hexadezimaler Wert z.B. 7D6 und soll in einen dezimalen Wert konvertiert werden (2006).

VG

D
496 Beiträge seit 2005
vor 14 Jahren

also, tbFiltID.Text ist schon string deshalb ist ToString() überflüssing, ansonsten würd ich das so machen:

uint ID=0;
ID=Convert.ToUInt32(tbFiltID.Text,16);

"Programming is similar to sex. If you make a mistake, you have to support it for the rest of your life."

S
snowy Themenstarter:in
143 Beiträge seit 2009
vor 14 Jahren

Es soll in einen dezimalen Wert konvertiert werden:


uint ID;
ID = Convert.ToUInt32(tbFiltID.Text, 10); 

Hier kommt eine Format Exception...

49.485 Beiträge seit 2005
vor 14 Jahren

Hallo snowy,

ein int ist weder dezimal, noch oktal, noch hexadezimal, sondern eben ein int. Dazu kommt es erst, wenn ein int als String repräsentiert wird. Beim Convert musst du entsprechend die Basis angeben, in der die String codiert ist, also 16, wie von demondriver235 gesagt.

Beachte bitte auch [Hinweis] Wie poste ich richtig? Punkt 1.1.1 (und Punkt 3 ==> geändert).

herbivore

W
123 Beiträge seit 2008
vor 14 Jahren

Hier kommt eine Format Exception...

Mal abgesehen von deinem Fehler bei der Angabe der Basis, sind Eingabewerte aus einer Textbox per se nicht vertrauenswürdig, d.h. man kann sich nicht darauf verlassen, dass dort ein gültiger Hexwert eingetragen wird. Daher würde ich hier eine Variante mit Eingabeüberprüfung vorschlagen:


uint nID;
            
if( !UInt32.TryParse(tbFiltID.Text, System.Globalization.NumberStyles.HexNumber, null, out nID) )
{
    // Falsches Format des Eingabewertes !
}

Gruß
wolpertinger