Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

7 Март 2021, 06:08 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Доступно и просто о работе в офисных пакетах
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: « 1 2 3 »   Вниз
  Печать  
Автор Тема: Программно прочитать текст  (Прочитано 11248 раз)
0 Пользователей и 1 Гость смотрят эту тему.
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Киев
Сообщений: 2 764


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #15: 4 Ноябрь 2014, 14:01 »

Так а Excel и Calc здесь с какого боку?!!
Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
RAN
Участник
**
Offline Offline

Расположение: Н. Новгород
Сообщений: 40

Мяв? Мяв!


« Ответ #16: 4 Ноябрь 2014, 14:04 »

Макрос куда-то надо впихнуть  Улыбка
Мне в Excel проще
Хотя, с переходом на Dir, оно совсем без разницы.
Записан
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Киев
Сообщений: 2 764


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #17: 4 Ноябрь 2014, 14:40 »

Ага! Попался!
Одна из заморочек, которые отличают офисы друг от друга - размещение библиотек макросов.
Если мне правильно изменяет память, то "общие" Word'овские макросы пишутся в Normal.dot, а Excel'евские - тоже в какой-то шаблон экселевского формата. Ну, во всяком случае, когда-то так и было...
А вот одна из вкусностей открытого офиса - библиотеки макросов всего офиса (защищенные, "Макросы LibreOffice") и пользовательские (редактируемые, "Мои макросы") содержат ВСЕ макросы, хоть для Calc, хоть для Writer, хоть вообще без привязки к чему-то конкретному... Вот так вот сходу не придумаю чего-нибудь полезного, что работало бы самостоятельно, без документа... Разве что, стандартный "Хэллоу-ворлд" (хотя пользы-то от него!)
И что самое прикольное: имеем право вызвать выполнение макроса без явного запуска офиса, из командной строки, или из bat-файла, или из стороннего приложения... Нравится?

И при всём при том, какой-то специфический макрос-модуль можем не сохранять в "общих" библиотеках, а сохранить в отдельном документе...
В общем, у Питоньяка это всё хорошо расписано - рекомендую!
Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
RAN
Участник
**
Offline Offline

Расположение: Н. Новгород
Сообщений: 40

Мяв? Мяв!


« Ответ #18: 4 Ноябрь 2014, 15:23 »

Без явного запуска офиса и VBS скрипт подходит, но вот файлы не читаются.
А Питоньяка погляжу.
Записан
RAN
Участник
**
Offline Offline

Расположение: Н. Новгород
Сообщений: 40

Мяв? Мяв!


« Ответ #19: 5 Ноябрь 2014, 17:53 »

C помощью шкипера и Питоньяка дожал.
Хотя на 90% - голимый VBA.
Выдирает уникальные email из всех текстовых файлов (doc*, odt, txt)  в отдельный файл txt.

Из интересного
оператор Like у Питоньяка отсутствует как класс, но работает исправно, функция Replace тоже отсутствует, но работает почти правильно (заменяет не все, а только первое найденное).

* 11.ods (16.65 Кб - загружено 11 раз.)
Записан
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Киев
Сообщений: 2 764


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #20: 5 Ноябрь 2014, 19:11 »

C помощью шкипера и Питоньяка дожал.
Дружище, на меня можно не ссылаться - в том, что ты выложил, моих ни одной буквы нет.
Хотя на 90% - голимый VBA.
"Старую суку не научишь новым штукам" (с) Опытные кинологи.
Ты всё равно сохраняешься в xls, всё равно пытаешься писать, как привык... Наличие библиотеки VBAProject-Объекты документа сдаёт тебя с головой... Таки-да, голимый VBA.
Давай попробую сказать всё то же самое, но чуть иначе - если макрос ваяешь под открытый офис, забудь все наработанные навыки!
После просмотра твоего творения, сам Питоньяк возмутился бы! Что это за мутант?
Выдирает уникальные email из всех текстовых файлов (doc*, odt, txt)  в отдельный файл txt.
Вау! Нам - наконец-то! - открыли общий замысел проекта! Всего-то навсего, пополнение базы адресов для спамера...
Это не так? Сорри, виноват, ошибся...
Из интересного
оператор Like у Питоньяка отсутствует как класс, но работает исправно, функция Replace тоже отсутствует, но работает почти правильно (заменяет не все, а только первое найденное).
Ну, блин, сравнил! Документация (перевод) какой датой помечена? А сам офис какого релиза? Тут ведь как ни выпуск, так сразу куча новшеств (и приключений с рефакторингом готового кода)

А так-то, вообще, крут! Честно - крут! Аккуратно, внятно... ни хрена (без комментариев) не понятно... Но крут! Типа, Welcome в хорошую компанию
Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
RAN
Участник
**
Offline Offline

Расположение: Н. Новгород
Сообщений: 40

Мяв? Мяв!


« Ответ #21: 5 Ноябрь 2014, 19:36 »

Всего-то навсего, пополнение базы адресов для спамера...
Это не так?
Без понятия. Ни разу не интересовало.
Мне заказали, я сделал. А в ОО перевести - уже мой личный интерес был.
После твоего "забудь VBA" возник уже чисто спортивный интерес - сделать именно на VBA.
То, что можно было сделать иначе, я  в библиотеке "Tools" увидел.
Одна беда с этой библиотекой - разбираться, что там есть, и зачем оно есть.
« Последнее редактирование: 5 Ноябрь 2014, 19:38 от RAN » Записан
RAN
Участник
**
Offline Offline

Расположение: Н. Новгород
Сообщений: 40

Мяв? Мяв!


« Ответ #22: 6 Ноябрь 2014, 11:54 »

Никакого For Each там нет...
А маленьких обманывать не хорошо!
У меня в другом месте кода работало и работает (случайно заметил)
А проблема была в том, что ОО с Объект-коллекцией "Files" при записи For Each File In Folder.Files не работает. Хотя так Set File = Folder.Files("AUTOEXEC.BAT") все видит.
Записан
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Киев
Сообщений: 2 764


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #23: 6 Ноябрь 2014, 12:45 »

Да никто не обманывал: в том что работают вещи не предусмотренные родным языком виноваты строчки
Код:
Rem Attribute VBA_ModuleType=VBAModule
Option VBASupport 1
в начале модуля и соответствующая структура библиотек. Открытый офис старается прикинуться майкрософтовским офисом и это у него получается довольно убедительно.
"Если плохое решение работает, значит не такое оно и плохое..."
Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
RAN
Участник
**
Offline Offline

Расположение: Н. Новгород
Сообщений: 40

Мяв? Мяв!


« Ответ #24: 6 Ноябрь 2014, 12:56 »

Удалил модуль VBA, перенес код в стандартный, удалил строки
Код:
Rem Attribute VBA_ModuleType=VBAModule
Option VBASupport 1
Все равно работает!  Смеющийся
Одна беда - документы, открытые с скрытом режиме не хотят полностью закрываться. Остается
.~lock..~lock.Текстовый документ OpenDocument.odt##
Записан
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Киев
Сообщений: 2 764


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #25: 6 Ноябрь 2014, 13:09 »

Поведение одинаковое для oDoc.Close и для DisposeDocument (oDoc)?
У Питоньяка это глава 5.8, а в DevGuide пример лежит в конце Closing Documents

PS. А вообще-то и открывать файлы, которые начинаются с .~lock. и заканчиваются "решеткой", совсем не обязательно - искомых емэйлов там точно нет...
« Последнее редактирование: 6 Ноябрь 2014, 13:13 от JohnSUN » Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
RAN
Участник
**
Offline Offline

Расположение: Н. Новгород
Сообщений: 40

Мяв? Мяв!


« Ответ #26: 6 Ноябрь 2014, 13:13 »

При работе из модуля VBA oDoc.Close закрывает, DisposeDocument (oDoc) - нет.
А из стандартного и oDoc.Close не хочет.
Если без использования скрытого режима, из VBA DisposeDocument (oDoc) закрывает.
Записан
RAN
Участник
**
Offline Offline

Расположение: Н. Новгород
Сообщений: 40

Мяв? Мяв!


« Ответ #27: 6 Ноябрь 2014, 13:20 »

Ничёнепонимаю!  Веселый
Сейчас еще раз запустил (правда с перезагрузкой ОО), работает и то, и другое.
Записан
RAN
Участник
**
Offline Offline

Расположение: Н. Новгород
Сообщений: 40

Мяв? Мяв!


« Ответ #28: 7 Ноябрь 2014, 11:54 »

Итог
Без Option VBASupport 1 работает только до закрытия окна макросов. Оказывается, где то запоминает.
Правильно закрывает командой
Код:
oDoc.Close False
Записан
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Киев
Сообщений: 2 764


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #29: 7 Ноябрь 2014, 12:43 »

Правда ведь, увлекательнейший процесс?..  Подмигивающий
Не стану нудить на тему "А вот если бы сразу не стал переделывать вылизанный VBA-проект, а начал с нуля - вот тогда бы уже давно написал и отладил свежий вариант..." Или всё-таки стану?..
По-хорошему, нужно было бы разложить получившееся решение на составные части, отсечь заведомо лишние куски и пересобрать заново, избегая использования "неродных" приёмов... Но лень. Тем более, что и тема "сбор eMail'ов" какая-то не такая...
Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
Страниц: « 1 2 3 »   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!