Страница 1 из 2

Cчитывание данных файла формата doc

Добавлено: 09 дек 2017, 18:35
Akimzhan
Всем салют) В начале сентября начал обучение в данной среде. Появился вопрос как считать информацию из Microsoft Office Word, для дальнейшей обработки данных. Это мне нужно для создания программы тестовика, которая будет генерировать вопросы с ответами записанными в Microsoft Office Word. Заранее благодарю!

Re: Cчитывание данных файла формата doc

Добавлено: 10 дек 2017, 02:25
dadreamer
Я бы прописал RGT, но судя по вашей версии :labview: вам придется довольствоваться ActiveX или .NET, в т.ч. врапперами наподобие Novacode.

Re: Cчитывание данных файла формата doc

Добавлено: 10 дек 2017, 11:38
Akimzhan
Да согласен с тем ,что у меня версия старая, просто у меня так скажем стоит четко поставленная цель свыше, сделать это именно в данной версии. Спасибо за совет! Не могли бы вы посоветовать материалы для использования ActiveX и прочего. Который день копаюсь, никак не могу найти. За ранее благодарю!!

Re: Cчитывание данных файла формата doc

Добавлено: 10 дек 2017, 13:59
Kosist
Akimzhan писал(а):Который день копаюсь, никак не могу найти. За ранее благодарю!!
А где Вы копаетесь? Гугл на запрос "labview and activex" или "labview and activex word" выдает столько ссылок, что "мама не горюй". В чем проблема-то? Гугл у всех одинаковый :wink:

Re: Cчитывание данных файла формата doc

Добавлено: 10 дек 2017, 15:00
dadreamer
Akimzhan писал(а):Не могли бы вы посоветовать материалы для использования ActiveX и прочего.
Примеры, идущие в комплекте с :labview: , например actxpp.llb и ExcelExamples.llb в папке C:\Program Files\National Instruments\LabVIEW 8.0\examples\comm , также см. Help -> Find Examples, ну и сама справка, встроенная в :labview: , например Using ActiveX with LabVIEW. Кроме того, есть множество статей на форумах, всё это довольно легко гуглится.

Однако, раз вы абсолютный новичок в коммуникациях с приложениями, проще всего вам будет взять библиотеку DocX и с её помощью прочитать документ. Готовая библиотека лежит на вкладке "Releases". Справка по свойствам и методам - на вкладке Wiki. Вот самый базовый пример чтения из .docx:
DocX_Snippet.png
Проверочный файл и то, что считалось, выглядит вот так:
2017-12-10_16-24-39.jpg
Ну, и исходник:
DocX_Sample.rar
lv8.5
(115.45 КБ) 194 скачивания
Краткое описание алгоритма:
1. открываем .docx файл
2. читаем "сырой" текст из файла (т.е., текст без форматирования); если нам этого достаточно, переходим сразу к п. 6
3. узнаём, сколько в файле параграфов (строчек с переносом)
4. для каждого параграфа (цикл for) получаем текст, в нём содержащийся
5. закрываем ссылку на параграф
6. закрываем ссылки на коллекцию параграфов и на сам файл

Re: Cчитывание данных файла формата doc

Добавлено: 10 дек 2017, 17:55
Akimzhan
Огромное спасибо, извиняюсь за немного глупый вопрос и в правду в 21 веке можно сделать все при помощи Google.

Re: Cчитывание данных файла формата doc

Добавлено: 12 дек 2017, 08:30
Akimzhan
Попробовал вариант через библиотеку DocX, но при запуске программы Sample.vi в LabVIEW, требуется файл .dll . В итоге выдается сообщение, что путь к файлу не найден и тд. Далее необходимо выбрать программу Application directory.vi которой нет , хотел спросить , как устранить данную проблему, может быть дело в версии или же в самом пакете LabVIEW ?

Re: Cчитывание данных файла формата doc

Добавлено: 12 дек 2017, 12:29
dadreamer
Akimzhan писал(а):при запуске программы Sample.vi в LabVIEW, требуется файл .dll . В итоге выдается сообщение, что путь к файлу не найден и тд.
Перед тем, как запускать программу, разблокируйте все файлы, что лежат в архиве. Винда защищается от подозрительного контента из интернета. Нажмите ПКМ -> Свойства -> Разблокировать. Затем запускайте прогу. Естественно, Xceed.Words.NET.dll должен лежать в папке data.
Akimzhan писал(а):Далее необходимо выбрать программу Application directory.vi которой нет
Разве в 8.5 нет App Directory? :shok: Это, вроде как, довольно старая штука.
2017-12-12_14-28-08.jpg
Ну, возьмите тогда Current VI's Path (в экзешнике его strip'нуть надо будет). На худой конец вбейте путь константой, по-моему это не проблема.

Re: Cчитывание данных файла формата doc

Добавлено: 13 дек 2017, 08:48
Akimzhan
dadreamer, Всё сделал , как Вы сказали, но что-то тут не так, не знаю что делать , пробовал и правами админа разблокировать файлы, но всё в пустую. :suicide: Не знаю что делать.

Re: Cчитывание данных файла формата doc

Добавлено: 13 дек 2017, 08:52
dadreamer
Akimzhan писал(а):dadreamer, Всё сделал , как Вы сказали, но что-то тут не так, не знаю что делать , пробовал и правами админа разблокировать файлы, но всё в пустую. :suicide: Не знаю что делать.
Архив трогать не надо. Надо трогать файлы внутри распакованного архива. Да и вы, похоже, не админ (по кр. мере не полный). Выйдите из системы и зайдите под Администратором, разблокируйте файлы. Уберите также атрибут "для чтения", если будет.

Re: Cчитывание данных файла формата doc

Добавлено: 18 дек 2017, 13:36
Akimzhan
А на версии 8.5 вообще будет работать данный файл?Потому что пробовал сделать все как вы сказали на другом ноутбуке но вылезает тот скрин который я вам отправил ранее.

Re: Cчитывание данных файла формата doc

Добавлено: 18 дек 2017, 16:14
dadreamer
Akimzhan писал(а):А на версии 8.5 вообще будет работать данный файл?Потому что пробовал сделать все как вы сказали на другом ноутбуке но вылезает тот скрин который я вам отправил ранее.
Разобрался, почему у вас не хочет работать. Суть проблемы - Invalid Library Error When Loading a DLL Written in .NET 4.0 Ну, то есть, ранние версии :labview: поддерживают .NET Framework 2.0, а Xceed.Words.NET.dll написан на .NET 4.0. Решение - использовать классическую версию DocX.dll 1.0.0.22: https://github.com/xceedsoftware/DocX/releases (снизу, под текущей версией). На диаграмме вам надо будет выбрать эту библиотеку и заново определить свойство/метод для каждого узла - просто жмёте ПКМ на узле и выбираете то, что уже было выбрано. Я проверил на XP и :labview: 8.0, всё работает.

А вот альтернативный фикс толком не работает - :labview: на некоторых свойствах выдаёт эксепшн.

Re: Cчитывание данных файла формата doc

Добавлено: 19 дек 2017, 13:48
Akimzhan
Всё поменял, нашёл необходимые библиотеки , но при запуске, после компиляции вылезает ошибка внутреннего исключения.

Re: Cчитывание данных файла формата doc

Добавлено: 19 дек 2017, 15:35
Blackman
Вы не правильно задаете путь к файлу. Надо задавать относительный путь файла (без кавычек), чтобы отрезать имя файла текущего :vi: -> "..\имя файл.docx"

Re: Cчитывание данных файла формата doc

Добавлено: 19 дек 2017, 16:23
dadreamer
Akimzhan писал(а):Всё поменял, нашёл необходимые библиотеки , но при запуске, после компиляции вылезает ошибка внутреннего исключения.
В ошибке сказано, что файл не найден. После Current VI's Path нужно вставить Strip Path, и с его верхнего выхода взять провод.