Entwickler-Ecke
C# - Die Sprache - Problem mit rtf-Code in C#
DevInet - Mo 23.08.10 15:23
Titel: Problem mit rtf-Code in C#
Hallo zusammen.
Ich habe ein Problem mit meinem Programm zum generieren von Outlook-Signaturen.
Ich will für Outlook eine Signatur als .rtf-Datei erstellen.
Hierzu habe ich eine Basis-Datei erstellt, welche Platzhalter für die relevanten Daten enthält. Einer dieser Platzhalter steht für Events, welche einen Link enthalten. Mit Perl funktioniert das ganze auch wunderbar. Aber wenn ich das mit meinem C#-Programm per Regex ersetze funktioniert das ganze nicht.
Ich hoffe einer von euch kann mir da weiterhelfen.
Programm-Code:
C#-Quelltext
1:
| string ersatz3 = Regex.Replace(entry, exp3, "\\{\\rtlch\\fcs1 \\af1\\afs16 \\ltrch\\fcs0 \\f1\\fs16\\cf17\\insrsid15890944 \\hich\\af1\\dbch\\af31505\\loch\\f1 Am }" + "{\\rtlch\\fcs1 \\af1\\afs16 \\ltrch\\fcs0 \\b\\f1\\fs16\\cf17\\insrsid12795575 \\hich\\af1\\dbch\\af31505\\loch\\f1 "+ evdatum + "}{\\rtlch\\fcs1 \\af1\\afs16 \\ltrch\\fcs0 \\b\\f1\\fs16\\cf17\\insrsid15890944\\charrsid15890944 \\hich\\af1\\dbch\\af31505\\loch\\f1 :}" + "{\\rtlch\\fcs1 \\af1\\afs16 \\ltrch\\fcs0 \\f1\\fs16\\cf17\\insrsid15890944 \\hich\\af1\\dbch\\af31505\\loch\\f1 }" + "{\\field\\fldedit{\\*\\fldinst {\\rtlch\\fcs1 \\af1\\afs16 \\ltrch\\fcs0 \\f1\\fs16\\cf17\\insrsid11938771\\charrsid4074067 \\hich\\af1\\dbch\\af31505\\loch\\f1 HYPERLINK \"" + evlink + "\" }{\\rtlch\\fcs1 \\af1\\afs16 \\ltrch\\fcs0 \\f1\\fs16\\cf17\\insrsid11354410charrsid4074067}}" + "{\\fldrslt {\\rtlch\\fcs1 \\af1\\afs16 \\ltrch\\fcs0 \\f1\\fs16\\cf17\\insrsid12795575 \\hich\\af1\\dbch\\af31505\\loch\\f1 " + evtext + "}}}\\sectd \\ltrsect \\linex0\\endnhere\\sectdefaultcl\\sftnbj {\\rtlch\\fcs1 \\af1\\afs16 \\ltrch\\fcs0 \\f1\\fs16\\cf17\\insrsid4930345\\charrsid4074067 \\par }\\"); |
rtf-Code in der per C# generierten Datei:
Quelltext
1:
| \par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid13303839 {\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid13513359 \hich\af31506\dbch\af31505\loch\f31506 \{\rtlch\fcs1 \af1\afs16 \ltrch\fcs0 \f1\fs16\cf17\insrsid15890944 \hich\af1\dbch\af31505\loch\f1 Am }{\rtlch\fcs1 \af1\afs16 \ltrch\fcs0 \b\f1\fs16\cf17\insrsid12795575 \hich\af1\dbch\af31505\loch\f1 23.06.2010}{\rtlch\fcs1 \af1\afs16 \ltrch\fcs0 \b\f1\fs16\cf17\insrsid15890944\charrsid15890944 \hich\af1\dbch\af31505\loch\f1 :}{\rtlch\fcs1 \af1\afs16 \ltrch\fcs0 \f1\fs16\cf17\insrsid15890944 \hich\af1\dbch\af31505\loch\f1 }{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs16 \ltrch\fcs0 \f1\fs16\cf17\insrsid11938771\charrsid4074067 \hich\af1\dbch\af31505\loch\f1 HYPERLINK "http://www.r-tec.net/Veranstaltungen/Workshops/Security-Tag-23-Juni/index.htm" }{\rtlch\fcs1 \af1\afs16 \ltrch\fcs0 \f1\fs16\cf17\insrsid11354410charrsid4074067}}{\fldrslt {\rtlch\fcs1 \af1\afs16 \ltrch\fcs0 \f1\fs16\cf17\insrsid12795575 \hich\af1\dbch\af31505\loch\f1 r-tec IT Security Tag}}}\sectd \ltrsect \linex0\endnhere\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs16 \ltrch\fcs0 \f1\fs16\cf17\insrsid4930345\charrsid4074067 \par }\}{\rtlch\fcs1 \af0 \ltrch\fcs0 |
rtf-Code in der per Perl generierten Datei:
Quelltext
1:
| \par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid13303839 {\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid13513359 \hich\af31506\dbch\af31505\loch\f31506 {\rtlch\fcs1 \af1\afs16 \ltrch\fcs0 \f1\fs16\cf17\insrsid15890944 \hich\af1\dbch\af31505\loch\f1 Am }{\rtlch\fcs1 \af1\afs16 \ltrch\fcs0 \b\f1\fs16\cf17\insrsid12795575 \hich\af1\dbch\af31505\loch\f1 23.09.2010}{\rtlch\fcs1 \af1\afs16 \ltrch\fcs0 \b\f1\fs16\cf17\insrsid15890944\charrsid15890944 \hich\af1\dbch\af31505\loch\f1 :}{\rtlch\fcs1 \af1\afs16 \ltrch\fcs0 \f1\fs16\cf17\insrsid15890944 \hich\af1\dbch\af31505\loch\f1 }{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs16 \ltrch\fcs0 \f1\fs16\cf17\insrsid11938771\charrsid4074067 \hich\af1\dbch\af31505\loch\f1 HYPERLINK "http://www.r-tec.net/Veranstaltungen/Workshops/Kunden-Tag-23-September/index.htm" }{\rtlch\fcs1 \af1\afs16 \ltrch\fcs0 \f1\fs16\cf17\insrsid11354410arrsid4074067}}{\fldrslt {\rtlch\fcs1 \af1\afs16 \ltrch\fcs0 \f1\fs16\cf17\insrsid12795575 \hich\af1\dbch\af31505\loch\f1 r-tec Kundentag im Golden Tulip in Wuppertal}}}\sectd \ltrsect \linex0\endnhere\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs16 \ltrch\fcs0 \f1\fs16\cf17\insrsid4930345\charrsid4074067 \par }}{\rtlch\fcs1 \af0 \ltrch\fcs0 |
Mfg
DevInet
DevInet - Mo 23.08.10 16:50
Hat sich erledigt.
Der Fehler sieht wie folgt aus!
Alter Code:
C#-Quelltext
1:
| string ersatz3 = Regex.Replace(entry, exp3, "\\{\\rtlch\\fcs1 \\af1\\afs16 \\ltrch\\fcs0 \\f1\\fs16\\cf17\\insrsid15890944 \\hich\\af1\\dbch\\af31505\\loch\\f1 Am }" + "{\\rtlch\\fcs1 \\af1\\afs16 \\ltrch\\fcs0 \\b\\f1\\fs16\\cf17\\insrsid12795575 \\hich\\af1\\dbch\\af31505\\loch\\f1 "+ evdatum + "}{\\rtlch\\fcs1 \\af1\\afs16 \\ltrch\\fcs0 \\b\\f1\\fs16\\cf17\\insrsid15890944\\charrsid15890944 \\hich\\af1\\dbch\\af31505\\loch\\f1 :}" + "{\\rtlch\\fcs1 \\af1\\afs16 \\ltrch\\fcs0 \\f1\\fs16\\cf17\\insrsid15890944 \\hich\\af1\\dbch\\af31505\\loch\\f1 }" + "{\\field\\fldedit{\\*\\fldinst {\\rtlch\\fcs1 \\af1\\afs16 \\ltrch\\fcs0 \\f1\\fs16\\cf17\\insrsid11938771\\charrsid4074067 \\hich\\af1\\dbch\\af31505\\loch\\f1 HYPERLINK \"" + evlink + "\" }{\\rtlch\\fcs1 \\af1\\afs16 \\ltrch\\fcs0 \\f1\\fs16\\cf17\\insrsid11354410charrsid4074067}}" + "{\\fldrslt {\\rtlch\\fcs1 \\af1\\afs16 \\ltrch\\fcs0 \\f1\\fs16\\cf17\\insrsid12795575 \\hich\\af1\\dbch\\af31505\\loch\\f1 " + evtext + "}}}\\sectd \\ltrsect \\linex0\\endnhere\\sectdefaultcl\\sftnbj {\\rtlch\\fcs1 \\af1\\afs16 \\ltrch\\fcs0 \\f1\\fs16\\cf17\\insrsid4930345\\charrsid4074067 \\par }\\"); |
Neuer Code:
C#-Quelltext
1:
| string ersatz3 = Regex.Replace(entry, exp3, "{\\rtlch\\fcs1 \\af1\\afs16 \\ltrch\\fcs0 \\f1\\fs16\\cf17\\insrsid15890944 \\hich\\af1\\dbch\\af31505\\loch\\f1 Am }" + "{\\rtlch\\fcs1 \\af1\\afs16 \\ltrch\\fcs0 \\b\\f1\\fs16\\cf17\\insrsid12795575 \\hich\\af1\\dbch\\af31505\\loch\\f1 "+ evdatum + "}{\\rtlch\\fcs1 \\af1\\afs16 \\ltrch\\fcs0 \\b\\f1\\fs16\\cf17\\insrsid15890944\\charrsid15890944 \\hich\\af1\\dbch\\af31505\\loch\\f1 :}" + "{\\rtlch\\fcs1 \\af1\\afs16 \\ltrch\\fcs0 \\f1\\fs16\\cf17\\insrsid15890944 \\hich\\af1\\dbch\\af31505\\loch\\f1 }" + "{\\field\\fldedit{\\*\\fldinst {\\rtlch\\fcs1 \\af1\\afs16 \\ltrch\\fcs0 \\f1\\fs16\\cf17\\insrsid11938771\\charrsid4074067 \\hich\\af1\\dbch\\af31505\\loch\\f1 HYPERLINK \"" + evlink + "\" }{\\rtlch\\fcs1 \\af1\\afs16 \\ltrch\\fcs0 \\f1\\fs16\\cf17\\insrsid11354410charrsid4074067}}" + "{\\fldrslt {\\rtlch\\fcs1 \\af1\\afs16 \\ltrch\\fcs0 \\f1\\fs16\\cf17\\insrsid12795575 \\hich\\af1\\dbch\\af31505\\loch\\f1 " + evtext + "}}}\\sectd \\ltrsect \\linex0\\endnhere\\sectdefaultcl\\sftnbj {\\rtlch\\fcs1 \\af1\\afs16 \\ltrch\\fcs0 \\f1\\fs16\\cf17\\insrsid4930345\\charrsid4074067 \\par }"); |
Mfg DevInet
Trashkid2000 - Mo 23.08.10 16:54
und da brauchst Du echt so einen langen regulären Ausdruck, nur um an den Hyperlink zu kommen :shock:
Ist die Stelle denn so uneindeutig?
DevInet - Di 24.08.10 17:58
Der Ausdruck enthält ja nicht nur den Hyperlink, sondern auch noch eine Zusatzinformation, einen Text der den Hyperlink maskiert und die ganzen Werte für Schriftgrösse, Farbe, etc.
Mfg DevInet
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!