単語の相互運用機能を使用して特定の改行を削除するのに問題があります。doc.Content.Textのインデックスがwordのインデックスと一致していないようです。
前の文字としてドットがないすべてのブレークを削除する必要があります。
小さなドキュメントでは機能しますが、その後の約3〜5ブレークの間、選択された範囲はページブレークではありません。誰もがrange.select(start:start、end:end)なしでこれらのブレークを削除する方法を知っているか、問題?
たとえば、私は次のテキストを持っています:
34万人の世論調査を調べた米国の調査官は、月曜日の気分は他の営業日よりも悪くないことを発見しました、金曜日を除く。((休憩))
週末に近づくにつれ、人々は幸せになり、((削除する))の概念をサポートしました。
「あの金曜日の気持ち」((休憩))
class Program
{
static void Main(string[] args)
{
Microsoft.Office.Interop.Word.Application word = new Microsoft.Office.Interop.Word.Application();
word.Visible = true;
string document = @"C:\bin\Debug\123.doc";
if (document != null)
{
Document doc = word.Documents.Open(document, ReadOnly: false, Visible: true);
doc.Activate();
string text = doc.Content.Text;
int index = text.IndexOf("\r");
int deletetCount = 0;
while(index != -1)
{
if (index != 0 && text[index - 1] != '.')
{
int start = index + 1 - deletetCount;
int end = start + 1;
if (start >= 0 && end >= 0 && end > start)
{
Range range = doc.Range(Start: start, End: end);
range.Select();
range.Delete();
deletetCount++;
}
}
index = text.IndexOf("\r", index + 1);
}
}
}
}