C# String nach Zeichen abtrennen /löschen

marek1337

Lt. Junior Grade
Registriert
Mai 2012
Beiträge
440
Hallo CB´ler,

Ich habe einen Registry Editor mit einem ListView geschrieben. Ich möchte jetzt noch einen zurück Button einbauen, womit ich in den nächst übergeordneten Schlüssel komme.
Ich wollte bei meinem Pfad, der in einer Textbox steht, den letzten Teil (ab dem \....) immer "abschneiden / löschen) und den Pfad dann erneut abrufen.
Kann mir einer sage, wie ich bei meinem Pfad alles nach dem letzten "\" löschen kann ?

BSP:
PFad

HKEY_local_machine\software\test2\asdf

Wie kann ich hier machen, dass beim 1. mal zurück drücken "\asdf" abgeschnitten wird und beim 2. zurück drücken "\test2" abgeschnitten/gelöscht wird.

Ich hoffe ihr könnt mein Problem ein wenig verstehen. Ich arbeite noch nicht lange mit c# :D

Grüße
 
ich kenne mich nicht wirklich mit C# aus aber es sollte sowas geben wie

string.substing(startIndex,endIndex)

für startIndex einfach 0 angeben und endIndex über string.lastIndexOf("\\") ermitteln.

MFG
Kori
 
Zuletzt bearbeitet: (Escape vergessen)
Hi,

string meinString = "HKEY_local_machine\\software\\test2\\asdf";
string[] meineStrings = meinString.Split(new Char[] { '\\' });

//In meineStrings sollten jetzt vorhanden sein:
//Index 0: "HKEY_local_machine"
//1: "software"
//2: "test2"
//3: "asdf"

Jetzt kannst du dir doch mit diesem Array wunderbar den String auf die gewünschte länge / tiefe selber zusammenbasteln :)

Einfach z.B.

meineStrings[0] + "\\" + meineStrings[1] + "\\" + meineStrings[2] usw, ne nach der Tiefe die du gerne hättest. Elegant dann mit einer Schleife.

VG,
Mad
 
Einfach mit .LastIndexOf() und .Substring() arbeiten.
 
Danke schonma! Wenn ich einen Substring bilden möchte: Wie kann ich den das letzte Zeichen in einer Zeile als endIndex auswählen ?

so sieht mein Code bislang aus :
pfad.Substring(pfad.LastIndexOf('\\'), "???");

Was soll ich für "???" einsetzten, damit er von dem letzten "\" bis zum letzten Zeichen alles entfernt, schreiben ?
 
In welcher Sprache hast du denn früher programmiert, dass du es scheinbar verlernt hast, zu einfachen Methoden mal die Dokumentation durchzulesen?

Dir ist schon klar, was Substring macht?
Substring entfernt keinen String sondern liefert einen Teil des Strings zurück...
 
Wenn man programmiert, sollte man doch in der Lage sein, so simple Probleme selber zu lösen oder?
Wenn man "C# stubstring" bei google eingibt findet man innerhalb von 10 Sekunden zig Beispiele, wie man das anstellt.

Nur so als Tip: Du machst es falsch. Du extrahierst genau das, was du eigentlich weglassen möchtest. Und selbst dann würde man den zweiten Parameter einfach weglassen und erhält damit alles vom ersten Auftreten von \ bis Ende.
 
anders rum
pfad.Substring(0, pfad.LastIndexOf('\\'));

wenn pfad "ad\asd\ada\as" ist dann kommt "ad\asd\ada" zurück

wenn du nur das nach dem "\" haben willst dann ist es pfad.Substring(pfad.LastIndexOf('\\'), pfad.length());

MFG
Kori
 
Korialstrasz schrieb:
wenn du nur das nach dem "\" haben willst dann ist es pfad.Substring(pfad.LastIndexOf('\\'), pfad.length());
Falsch. Der zweite Parameter ist nicht der Endindex sondern die Länge... Außerdem ist es nicht "nach dem" sondern "ab dem" Backslash.

Und allgemein sollte sichergestellt werden irgendwo, dass auch ein Backslash enthalten ist...
 
Zuletzt bearbeitet:
1668mib schrieb:
In welcher Sprache hast du denn früher programmiert, dass du es scheinbar verlernt hast, zu einfachen Methoden mal die Dokumentation durchzulesen?

Dir ist schon klar, was Substring macht?
Substring entfernt keinen String sondern liefert einen Teil des Strings zurück...

Ja ist mir schon klar was substring macht.Ich progge erst seit kurzer Zeit....
Ergänzung ()

Mhm ok ich habs -.- ich Trottel habe IndexOf genommen , nicht LastIndexOf :D
Sry das ich mich so blöde ausdrücke, habe halt noch keinen Plan in der Materie X.x
Aber tzdm danke!
 
Zurück
Oben