我目前在尝试编辑Document.Contents.Text
中的文本时遇到问题以下代码不起作用:
object findingFile = m_TempFileDirectory.FullName + "\\" + formField.Name + ".rtf";
Document tempDoc = wordApp.Documents.Open(ref findingFile, ref m_Missing,
ref m_Missing, ref m_Missing, ref m_Missing, ref m_Missing, ref m_Missing,
ref m_Missing, ref m_Missing, ref m_Missing, ref m_Missing, ref m_Missing,
ref m_Missing, ref m_Missing, ref m_Missing, ref m_Missing);
tempDoc.Content.Select();
String st = tempDoc.Content.Text;
st = st.Replace("\r", "");
tempDoc.Content.Text = st;
tempDoc.Content.Copy();
tempDoc.Close(ref m_DiscardChanges, ref m_Missing, ref m_Missing);
r.Paste();
我的结果仍然是(我正在尝试删除新行的\ r \ n)
Lipid level: not specified\r
答案 0 :(得分:1)
修改强>
我错误地逃避\ r \ n,因为你当然要替换实际的控制字符(\ r),而不是文字“\ r”'。遗憾。
您的评论中是正确的,当您tempDoc.Content.Text = st;
添加新的换行符(\ r \ n)时。在您实际使用该值时,您将始终需要删除或替换。
看起来您想将文本复制到剪贴板?如果是这样,为什么不从字符串(st
):
String st = tempDoc.Content.Text.Replace("\r", "\n");
System.Windows.Forms.Clipboard.SetText(st);
我还用回车符(\ n)替换了换行符,因为如果你不这样做,文本中根本就没有换行符(如果你有多行文本就会出现问题)。
(原始答案已删除)
答案 1 :(得分:0)
尝试:
st = st.Replace("\n", "").Replace("\r", "").Replace("\n\r", "");
旁注:
\n
在Unix中用作新行字符。
\r
用作Mac中的换行符。
\n\r
在Windows中用作换行符。