Ich bin langsam am verzweifeln:
Ich habe einen langen String in dem ich einen bestimmten Textausschnitt durch einen anderen ersetzen will. Ich weiß allerdings nur womit der String aufhört und endet. Den Mittelteil kenne ich nicht, deshalb ist replace jetzt gerade nicht zu gebrauchen.
Zum Üben habe ich nun folgenden String genommen:
C#-Quelltext
1: 2: 3: 4: 5:
| aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbb-text:"hallo"-dddddddddddddddddddddddddddddddddddd aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa |
Ich weiß der Teil fängt mit text:" an und hört mit einem " wieder auf. Dass dort hallo steht, weiß ich nicht.
Um den Teil nun zu entfernen und einen neuen einzusetzen habe ich folgendes geschrieben:
C#-Quelltext
1: 2: 3: 4: 5:
| int stIndex = strVar.IndexOf("text:\"", 0); int enIndex = strVar.IndexOf("\"", (stIndex+7)); strVar = strVar.Remove(stIndex , enIndex); strVar= strVar.Insert(stIndex, "text:\"Dieser Bereich wurde ersetzt\""); MessageBox.Show(strVar); |
Wenn ich mir nun aber das Ergebniss ausgeben lasse, fehlen am Ende ganz viele a's. Die d's sind komplett weg. Es scheint so als ob der enIndex zu hoch ist und zu viel vom String nach dem letzten " entfernt wird. Hat jemand eine Idee wo der Fehler liegt?