Hi Nurali,
I have created sample code which fullfill requirement.
C#
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
DialogResult firstDoc = openFileDialog1.ShowDialog();
DialogResult secondDoc = openFileDialog2.ShowDialog();
if (firstDoc == DialogResult.OK && secondDoc == DialogResult.OK)
{
string filePath1 = openFileDialog1.FileName;
string filePath2 = openFileDialog2.FileName;
CompareWordFile(filePath1, filePath2);
}
}
private bool isProcessRunning = false;
public void CompareWordFile(string fileToCompare, string fileToChange)
{
if (isProcessRunning)
{
MessageBox.Show("A process is already running.");
return;
}
Microsoft.Office.Interop.Word.Application word1 = new Microsoft.Office.Interop.Word.Application();
Microsoft.Office.Interop.Word.Application word2 = new Microsoft.Office.Interop.Word.Application();
Document doc1 = new Document();
Document doc2 = new Document();
object missing = System.Type.Missing;
object fileName1 = fileToCompare;
object fileName2 = fileToChange;
doc1 = word1.Documents.Open(ref fileName1, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing);
doc2 = word2.Documents.Open(ref fileName2, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing);
string temp = string.Empty;
for (int i = 0; i < doc1.Paragraphs.Count; i++)
{
temp += doc1.Paragraphs[i + 1].Range.Text.Trim();
}
string[] firstFile = temp.Replace("!", "").Replace("-", "").Replace(",", "").Trim().Split('.');
string[] SecondFile = temp.Replace("!", "").Replace("-", "").Replace(",", "").Trim().Split('.');
progressBar1.Maximum = 100;
progressBar2.Maximum = firstFile.Length - 1;
int totalcount = firstFile.Length - 1;
int count = 0;
double singlefile = 0.00;
double parcetage = 0.00;
int parcetage1 = 0;
for (int i = 0; i < firstFile.Length - 1; i++)
{
string item = firstFile[i];
foreach (Microsoft.Office.Interop.Word.Range docRange in doc2.Sentences)
{
if (docRange.Text.Replace("!", "").Replace("-", "").Replace(",", "").Split('.')[0].Trim().Equals(item.Trim(), StringComparison.CurrentCultureIgnoreCase))
{
count++;
parcetage = ((Convert.ToDouble(count) / Convert.ToDouble(totalcount)) * 100);
progressBar2.BeginInvoke(new Action(() => progressBar2.Value = count));
label5.Text = parcetage.ToString() + "%";
docRange.Font.ColorIndex = Microsoft.Office.Interop.Word.WdColorIndex.wdDarkRed;
}
}
singlefile++;
label4.Text = ((Convert.ToDouble(totalcount) / Convert.ToDouble(totalcount)) * 100).ToString() + "%";
parcetage1 = Convert.ToInt32((Convert.ToDouble(singlefile) / Convert.ToDouble(totalcount)) * 100);
progressBar1.BeginInvoke(new Action(() => progressBar1.Value = parcetage1));
}
doc2.Save();
MessageBox.Show("Document Updated!");
progressBar1.Value = 0;
progressBar2.Value = 0;
label4.Text = "00%";
label5.Text = "00%";
((_Application)word1).Quit();
((_Application)word2).Quit();
}
}
Screenshot
