String.Replace von Sonderzeichen

Hi,

ich habe festgestellt, dass folgende Replace-Anweisung nicht funktioniert:
meinString.Replace("\n", „\r\n“);

Warum? Werden Sonderzeichen dabei nicht beachtet? Ich habe nämlich das Problem, dass mein String beim Abspeichern in eine Textdatei nicht richtig dargestellt wird.

Vielen Dank im Voraus für alle Tipps,
Alexander

Hallo.

Inoffizielle .NET Regeln beim Posten von Code

  1. Sprache nennen
  2. .NET Version des Frameworks nennen
  3. Betriebssystem nennen
  4. IDE nennen

Hi,

ich habe festgestellt, dass folgende Replace-Anweisung nicht
funktioniert:
meinString.Replace("\n", „\r\n“);

Siehe http://www.microsoft.com/germany/msdn/library/net/Dr…
(suche nach .Replace) -> nur „\n“ wird akzeptiert
Quelle: http://www.dotnet-project.de (suche nach .Replace)
offtopic: http://www.microsoft.com/germany/msdn/library/net/Dr…
(pdf über Postscript und Grafikprogrammierung)

HTH
mfg M.L.

Hallo!
Sorry an ML, aber die Antwort ist Quark.
Das obige Replace funktioniert genauso wie mit allen anderen Zeichen (’\r’ und ‚\n‘ sind genauso gültige Zeichen in einem String wie alle anderen auch, also keine „Sonderzeichen“, die unerklärbare Probleme machen).
Mit an Sicherheit grenzender Wahrscheinlichkeit bist Du einfach dem Stolperstein aufgesessen, dass Strings unveränderlich sind und String.Replace nicht den Originalstring verändert, sondern einen neuen String zurückgibt, der den entsprechenden Ergebnisstring der Ersetzung erhält:

string a = "abc";
a.Replace("abc", "xyz");
// a ist immer noch "abc"
a = a.Replace("abc", "xyz");
// jetzt ist das Ergebnis auch zugewiesen worden, also a=="xyz"

Kopf hoch, ist glaube ich schon jedem mal passiert :smile:
Gruß,
Martin

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

Inoffizielle .NET Regeln beim Posten von Code

  1. Sprache nennen

C#, ist aber zumindest hier egal gewesen.

  1. .NET Version des Frameworks nennen

V1.1, sorry, das macht wohl eher einen Unterschied…

  1. Betriebssystem nennen

Windows XP Professional, das wohl wieder weniger wichtig…

  1. IDE nennen

VS2003 auch nicht wichtig.

Scheinbar funktioniert String.Replace überhaupt nicht, auch nicht mit anderen Zeichen. Warum weiß ich nicht, aber mit Regex hat´s nun funktioniert.

Danke und Gruß
Alexander

Oops, das war´s! Danke :smile:)

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]