Wie kann ich umwandeln RTF in nur-text?
Ich habe eine ziemlich große excel-Datei, die pro Zeile enthält eine clob-dump von unseren oracle Datenbank, einer von Ihnen könnte wie folgt Aussehen:
{\rtf1\ansi\deff0\deftab708{\fonttbl{\f0\fnil\fcharset0 Courier New;}{\f1\fnil\fcharset0 Arial;}{\f2\fnil\fcharset0 MS Sans Serif;}{\f3\fnil\fcharset0 Times New Roman;}{\f4\fnil\fcharset238 Times New Roman CE;}{\f5\fnil\fcharset204 Times New Roman Cyr;}{\f6\fnil\fcharset161 Times New Roman Greek;}{\f7\fnil\fcharset162 Times New Roman Tur;}{\f8\fnil\fcharset186 Times New Roman Baltic;}}{\colortbl\red0\green0\blue0;\red255\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red128\green0\blue128;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green128\blue0;\red128\green0\blue0;\red128\green128\blue128;\red255\green255\blue255;}\paperw11906\paperh16838\margl1417\margr1417\margt1417\margb1417{\*\pnseclvl1\pnucrm\pnstart1\pnhang\pnindent720{\pntxtb}{\pntxta{.}}}{\*\pnseclvl2\pnucltr\pnstart1\pnhang\pnindent720{\pntxtb}{\pntxta{.}}}{\*\pnseclvl3\pndec\pnstart1\pnhang\pnindent720{\pntxtb}{\pntxta{.}}}{\*\pnseclvl4\pnlcltr\pnstart1\pnhang\pnindent720{\pntxtb}{\pntxta{)}}}{\*\pnseclvl5\pndec\pnstart1\pnhang\pnindent720{\pntxtb{(}}{\pntxta{)}}}{\*\pnseclvl6\pnlcltr\pnstart1\pnhang\pnindent720{\pntxtb{(}}{\pntxta{)}}}{\*\pnseclvl7\pnlcrm\pnstart1\pnhang\pnindent720{\pntxtb{(}}{\pntxta{)}}}{\*\pnseclvl8\pnlcltr\pnstart1\pnhang\pnindent720{\pntxtb{(}}{\pntxta{)}}}{\*\pnseclvl9\pnlcrm\pnstart1\pnhang\pnindent720{\pntxtb{(}}{\pntxta{)}}}{\pard\ql\li0\fi0\ri0\sb0\sl\sa0 \plain\f3\fs24\cf0 FOO FOO FOO \'85\'85. \'85\'85..}}
Nun, indem Sie diese Daten in einem System.Windows.Forms.RichTextBox
's .Rtf
und dann Lesen Sie Ihre .Text
Wert bekomme ich eine einfache Konvertierung. ABER irgendwie bringt es seine Zeilenumbrüche.
Ich habe versucht, Sie zu entfernen, indem
rtf.Replace("\n", "").Replace("\r", "").Replace(Environment.NewLine, "")
Aber Es scheint nicht zu helfen.
Weiß jemand wie ich das umwandeln kann das rich-text-format zu einem einzige Zeile Klartext?
Sind Sie versuchen, führen Sie den Austausch auf dem ursprünglichen rtf oder plain-Text aus der RichTextBox.Text?
InformationsquelleAutor Jason94 | 2012-09-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Werfen Sie einen Blick auf diese Beispiel, code extrahiert für die Erhaltung.
AKTUALISIERT -- copy-und-paste-Fehler aus VB.NET Programm -- tut mir Leid Leute.
ControlChars
definiert? und OP sagt, dass er/Sie schon versucht zu ersetzen\n
und\r
.Sie müssen ersetzen Sie Sie zusammen als eine Gruppierung-oder zumindest das ist, was ich gefunden habe.
es war ein copy und paste Fehler aus einer VB.NET Programm und ich erwähnte, dass jetzt in meiner Antwort. Sorry für jede Verwirrung oder frustration.
Ich bin immer noch Probleme, aber
rtf = rtf.Replace("\n", "").Replace("\r", "").Replace(Environment.NewLine, "").Replace("\\par", "");
scheint almoste das problem zu lösen. Was ist\par?
solltest du wirklich entsorgen Sie die
RichTextBox
InformationsquelleAutor Mike Perrenoud
Gewusst wie: Konvertieren von RTF in nur-Text (C# - Programmierhandbuch)
In der .NET Framework, können Sie verwenden das RichTextBox-Steuerelement zum erstellen einer word-Prozessor, unterstützt RTF und ermöglicht es einem Benutzer zum anwenden von Formatierungen auf text in einem WYSIWIG Weise.
Können Sie auch verwenden das RichTextBox-Steuerelement programmgesteuert entfernen Sie die RTF-Formatierungscodes aus einem Dokument und wandelt es in text. Sie brauchen nicht eingebettet werden kann-Steuerelement in einem Windows Form zur Durchführung dieser Art von operation.
Dies ist in der Nähe, aber nicht voll erfüllen die OP ' s braucht, bitte siehe meine Antwort.
InformationsquelleAutor Kapil Khandelwal