Как найти положение или местоположение строки в данном документе - PullRequest
1 голос
/ 26 февраля 2010

Как найти положение или местоположение строки в данном документе. У меня есть одно слово документа, и я хочу сохранить все его слова и положения слов в базе данных, поэтому мне нужно найти положение слов.

, пожалуйста, скажите мне, как я могу найти положение или местоположение слова или строки в данном документе.

я намерен использовать vb.net или c # для документов .doc

1 Ответ

1 голос
/ 26 февраля 2010

Мммм ... Я не нашел более разумного решения: - / но, возможно, это поможет вам ... Предположим, у вас установлена ​​какая-то версия MS Office.

Прежде всего, вы должны добавить ссылку в вашем проекте на компонент Microsoft COM под названием «Microsoft Word? * Библиотека объектов»

*? Зависит от версии вашего MS Office

После добавления ссылки вы можете проверить этот код:

using System;
using System.Collections.Generic;
using System.Text;
using Word;

namespace ConsoleApplication1
{
    class Program
    {

        static void Main(string[] args)
        {

            // Find the full path of our document

            System.IO.FileInfo ExecutableFileInfo = new System.IO.FileInfo(System.Reflection.Assembly.GetEntryAssembly().Location);            
            object docFileName = System.IO.Path.Combine(ExecutableFileInfo.DirectoryName, "document.doc");

            // Create the needed Word.Application and Word.Document objects

            object nullObject = System.Reflection.Missing.Value;
            Word.Application application = new Word.ApplicationClass();
            Word.Document document = application.Documents.Open(ref docFileName, ref nullObject, ref nullObject, ref nullObject, ref nullObject, ref nullObject, ref nullObject, ref nullObject, ref nullObject, ref nullObject, ref nullObject, ref nullObject);


            string wholeTextContent = document.Content.Text; 
            wholeTextContent = wholeTextContent.Replace('\r', ' '); // Delete lines between paragraphs
            string[] splittedTextContent = wholeTextContent.Split(' '); // Get the separate words

            int index = 1;
            foreach (string singleWord in splittedTextContent)
            {
                if (singleWord.Trim().Length > 0) // We don´t need to store white spaces
                {
                    Console.WriteLine("Word: " + singleWord + "(position: " + index.ToString() + ")");
                    index++;
                }
            }

            // Dispose Word.Application and Word.Document objects resources

            document.Close(ref nullObject, ref nullObject, ref nullObject);
            application.Quit(ref nullObject, ref nullObject, ref nullObject);
            document = null;
            application = null;

            Console.ReadLine(); 
        }
    }
}

Я проверю это и похоже, что оно работает =)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...