Hallo @All
hier mal mein test Code
string test1 = listBox_Festplatten.SelectedItem.ToString();
int len = test1.Length - 1;
MessageBox.Show(test1.Substring(1, len));
dieses beispiel arbeitet so wie es sein soll ! das erste Zeichen wird von dem string ordnungsgemäß abgeschintten
sobald ich aber die zahl 1 erhöhe z.B. auf 2 geht irgendwas schief
MessageBox.Show(test1.Substring(2, len));
Was ist hier los und warum funktioniert das nicht ?
mfg yooti
parameter 1 startposition (von welcher position an soll der string genommen werden)
parameter 2 länge (die anzahl der abzuschneidenen zeichen)
jetzt kommst du
"Programming is similar to sex. If you make a mistake, you have to support it for the rest of your life."
string testString = "myCSharp.de";
int lengthToCut = 1;
// Subtraction of the lenght to the current string
Console.WriteLine("{0}", testString.Substring(0, testString.Length - lengthToCut));
Console.ReadKey();
Grüsse
Daniel
Space Profile
Wer nicht fragt, der nicht gewinnt
Hallo yooti,
sobald ich aber die zahl 1 erhöhe z.B. auf 2 geht irgendwas schief
so bitte nicht. Siehe [Hinweis] Wie poste ich richtig? Punkt 5.
Auch der von dir gewählte Titel "Substring" ist zu unspezifisch. Siehe [Hinweis] Wie poste ich richtig? Punkt 3. "ArgumentOutOfRangeException bei Substring (2, len)" wäre ein passender Titel gewesen.
Außerdem sagt ja die Meldung, die du bekommst (ArgumentOutOfRangeException: Der Index und die Länge müssen sich auf eine Position in der Zeichenfolge beziehen), aus, was das Problem ist. Du willst mehr Zeichen haben, als im String noch enthalten sind, weil 2 + len größer ist als die verbleibenden Zeichen.
Wenn du den ganzen Rest des Strings haben willst, dann verwende Substring (2) ohne Längenangabe.
herbivore