Entwickler-Ecke

Basistechnologien - Mehrzeiligen Text in die Zwischenablage verschieben


MrDude - Sa 19.05.07 13:01
Titel: Mehrzeiligen Text in die Zwischenablage verschieben
Hallo alle zusammen,

ich möchte einen mehrzeiligen Text in die Zwischenablage kopieren, leider kommt dann beim pasten im Windows Notepad kein mehrzeiliger Text raus.


C#-Quelltext
1:
2:
3:
4:
5:
6:
string txt;
txt = "Zeile 1\n";
txt += "Zeile 2\n";
txt += "Zeile 3\n";
txt += "Zeile 4";
Clipboard.SetText(txt);


Wenn ich das irgendwo paste kommt richtig:

Quelltext
1:
2:
3:
4:
Zeile 1
Zeile 2
Zeile 3
Zeile 4

aber im Windows Notepad kommt nur

Quelltext
1:
Zeile 1Zeile 2Zeile 3Zeile 4                    

Brauch ich um das richtig zu machen noch ein Zeichen? mit \r dazu gehts auch nicht und das macht bei allen anderen Programmen zwei Zeilenumbrüche...

MfG

MrDude


JüTho - Sa 19.05.07 14:17

Versuche es einmal mit Environment.Newline; vielleicht wird das überall richtig erkannt.

Jürgen

PS. Ich hoffe doch, dass Du "txt += ..." nur als Beispiel geschrieben hast. Strings sind grundsätzlich unveränderlich; ein derartiges Verhalten ist nur in Ausnahmefällen akzeptabel. Verwende stattdessen verwende mehrere Verknüpfungen direkt hintereinander "txt = ... + ... +" oder StringBuilder.


arj - Sa 19.05.07 16:06

Der Hintergrund warum das nicht geht ist folgender:
Unter Windows wird ein Zeilenumbruch mit \n\r dargestellt.
(Als Newline UND Carriage-Return).
Notepad erwartet das. Andere Editoren wie zum Beispiel WordPad kommen
auch nur mit dem Newline zeichen klar.

Unter Linux wird beispielsweise nur das Newline zeichen verwendet,
unter Mac war es lange Zeit so, dass nur das \r verwendet wurde.

Deshalb Environment.Newline von JüTho verwenden, dann sollte es gehen ;)