System.FormatException: string => UInt32
-
Hi zusammen!
Ich habe ein Problem bei der Umwandlung von einem String in UInt32.
Ich lese aus einer Video-Datei mehrere Eigenschaften aus. Unter anderem auch die Bitrate. Diese wird von der Funktion "GetDetailsOf()" der Shell32 als String zurück gegeben - im meinem Beispiel "447 kBit/s".
Ich möchte diesen Wert allerdings innerhalb meiner Klasse in einer UInt32-Variable speichern. Dafür schneide ich vom String einfach alles nach und inklusive des ersten Leerzeichens ab. Dannach möchte ich das ganze dann per "Convert.ToUInt32()" entsprechend umwandeln.
Leider bekomme ich aus einem mir unersichtlichen Grund immer eine Exception in der letzten Zeile.
System.FormatException: Input string was not in a correct format.
string temp = string.Empty; temp = Convert.ToString(folder.GetDetailsOf(item, 28)); //temp = "447 kBit/s"; temp = temp.Remove(temp.IndexOf(' ')); m_iBitrate = Convert.ToUInt32(temp);
In der auskommentierten Zeile habe ich mal probiert, ob es auch eine Exception gibt, wenn ich den Wert manuell direkt zuweise - nein, dann klappt es ohne Probleme.
Der String, der von der Funktion "GetDetailsOf()" zurück gegeben wird, sieht für mich genau so aus, wie der, den ich händisch zum Test übergeben habe. Also müsste es doch eigtl. klappen.
Hat jemand eine Idee, wo genau das Problem sein könnte?
Vielen Dank und Gruß
Skubidus
-
Ok, nach einigem hin und her Probieren habe ich das Problem lösen können.
Wie sich rausstellte, enthielt der String am Anfang noch ein nicht sichtbares Zeichen. Also das erste Zeichen mit String.Remove() abgeschnitten und nun geht's ohne Probleme.