Laden...

Teil stringdurch anderen String ersetzen

Erstellt von CinemaStrange vor 19 Jahren Letzter Beitrag vor 19 Jahren 3.103 Views
C
CinemaStrange Themenstarter:in
24 Beiträge seit 2005
vor 19 Jahren
Teil stringdurch anderen String ersetzen

Hiho,

Ich hab eine Datei koplett in einen String eingelesen.
Hab das alles bischen zusammen geschnitten, damit mir das suchen nach bestimmten Zeichen leichterfällt weil diese Zeichen öfter vorkommen und in einem neuen String gespeichert.
Ich aber nur einen bestimmten Abschnitt bearbeiten wollte, deswegen dieser weg.
Weil ich vorher mit regex die Positionen zum Zusammenschneiden bestimmt habe weiß ich auch wo des Zeugs anfängt und endet.

Nun möchte ich das geändert in den einem wieder an die altePosition im kompletten String zurückschreiben.

Mit replace kann ich aber nur String gegen String tauschen, soweit ich weiß.
Gibt es da ne Möglichkeit das auch über Indexzahlen zu steuern?

darkgreetz

Cine

49.485 Beiträge seit 2005
vor 19 Jahren

Hallo CinemaStrange,

String.Substring () zum Ausschneiden und str1 + str2 zum Zusammenfügen.

herbivore

C
CinemaStrange Themenstarter:in
24 Beiträge seit 2005
vor 19 Jahren

Das Problem ist nur das was ich ersetzen möchte steht mit drinnen in dem ersten String...deswegen ja auch meine Frage ob man nauch irgendwie Indexgesteuert ersetzen kann...

das geht so blblblblbl(teil ersetzen) blahaha.

darkgreetz

Cine

49.485 Beiträge seit 2005
vor 19 Jahren

Hallo CinemaStrange,

unter indexgesteuert habe ich verstanden, dass du die Indexpositionnen von Begin und Ende des zu ersetzenden Teils kennst. Wenn dem so ist, geht mit den genannten Methoden.


str = "Hallo";
str = str.Substring (0, 1) + "e" + str.Substring (2);

ergibt "Hello".

herbivore

C
CinemaStrange Themenstarter:in
24 Beiträge seit 2005
vor 19 Jahren

thx noch mal.

Habs jetzt geschafft.

Wenn die Lösung wie ich des jetzt gemacht hab sehen willlst sag bescheid.

CyA 👍

darkgreetz

Cine

A
196 Beiträge seit 2005
vor 19 Jahren

Ich habe eine änliche Frage
Und zwar habe ich eine Datei mit vielen Zeichen Buchstaben und Zahlen drin
Irgendwo in der Datei steht jetzt '''"***!!'')/(()= hallo.asd hallo2.asdf hallo3.asdf /(!("!/)"!)"!
Ich will jetzt alles was mit asdf endet in diesem Fall hallo.asd hallo2.asdf hallo3.asdf ausgeben lassen

Wie kann ich da vorgehen??

49.485 Beiträge seit 2005
vor 19 Jahren

Hallo alf468,

straight forward ungefähr so:


Match m = Regex.Match (str, @"(?<found>[a-z0-9_]+\.asdf)", RegexOptions.IgnoreCase);
while (m.Success) {
   Console.WriteLine (m.Groups["found"].Value);
   m = m.NextMatch ();
}

Pulpapex würde vermutlich empfehlen, den Pattern zu complieren 🙂

herbivore

A
196 Beiträge seit 2005
vor 19 Jahren

Danke erstmal aber leider funktioniert das nicht X(
es wird nix ausgegeben

49.485 Beiträge seit 2005
vor 19 Jahren

Hallo alf468,

durch den Forumsparser ist ein '&#39; in @"(?<found>[a-z0-9_]+.asdf)" verschwunden.

Allerdings wird dadurch eher weniger als mehr gematcht. Ich hatte jedoch den Code mit deinem String getestet und bei mir wird

hallo2.asdf
hallo3.asdf

ausgegeben. Es sollte also auch bei dir gehen.

herbivore

Hinweis 08.04.2006: Der Forumsparser wurde geändert und zeigt die Backslashes nun wieder an.

A
196 Beiträge seit 2005
vor 19 Jahren

Ohhh ich habe vergessen aus der Datei zu lesen 8o

A
196 Beiträge seit 2005
vor 19 Jahren

So jetzt geht es 🙂
Aber jetzt kommt der schwerste Teil.
Ich habe das ganze ins DataGrid geladen ,nun kann der User diese sachen ändern
Das ganze soll dann wieder in der Datei gespeichert werden

A
196 Beiträge seit 2005
vor 19 Jahren

Gibts den hier keinen de rmir da helfen kann??

49.485 Beiträge seit 2005
vor 19 Jahren

Hallo alf468,

zumindest mir war und ist nicht klar, was die Frage ist.

Wenn die Frage nichts mit "Teilstring durch anderen String ersetzen" zu tun hat, ist ohnehin es vielleicht besser einen neuen Thread aufzumachen.

herbivore