![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 24.01.2009
Сообщений: 113
|
![]()
Имеется файлик в который выводится инфа в представленном формате. Можно как то в excel-е мониторить появление новой строчки, т.е. как появилась новая строка, так сразу она выводится в файл Excel? Или хотя бы проверять появление строки с переодичностью 10-20 секунд.
Александр. |
![]() |
![]() |
![]() |
#2 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]()
Отслеживать изменения файла совсем несложно.
Достаточно через какое-то время (скажем, раз в секунду) считывать размер файла, и, если он изменился с момента последней проверки, то добавлять на лист Excel недостающие строки (или проще полностью заново считывать из него всю информацию). Вот только зачем всё это? Не проще ли производить обработку файла по нажатию некой кнопки? У Вас Excel запущен постоянно? Вы в нём работаете с другими файлами, или будете только наблюдать за автоматически обновляемым файлом? |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 24.01.2009
Сообщений: 113
|
![]()
Задача следить за появлением новой строчки в текстовом файле. В случае ее появления запускать определенноый макрос на исполнение. Важно что бы между моментом появления новой строки и запуском макроса было как можно меньше задержки.. Кстати запуск макроса по факту увеличения размера файла вполне приемлемый вариант.
PS/ Excel запущен постоянно. Последний раз редактировалось zander; 13.02.2009 в 15:41. |
![]() |
![]() |
![]() |
#4 | ||
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]()
Можно попробовать после чтения данных из текстового файла полностью удалять всё его содержимое (или вообще удалять файл) - программа, этот файл формирующая, создаст его по-новой...
Выберите один из вариантов, и укажите, куда должен передавать данные макрос, отслеживающий изменения файла (допустим, макрос обнаружил изменения в файле, считал новые строки, и передал их в качестве параметра другому макросу, который уже и будет производить их обработку) Цитата:
Или стирать его содержимое? Цитата:
Раз в секунду (или по событию изменения файла) выводить весь файл на лист, начиная с первой строки листа Excel. Результат-то будет тот же...
__Полезные надстройки для Excel. Парсинг сайтов и файлов.
![]() Последний раз редактировалось EducatedFool; 13.02.2009 в 16:12. |
||
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 24.01.2009
Сообщений: 113
|
![]()
Содержимое стирать можно (выводящая система перепишет), файл стирать нельзя, выводящая система создаст файл с другим названием
![]() Новые строки хотелось бы искать для дальнейшей (возможной ) реализации проекта в настоящий момент достаточно просто переписывать весь файл по событию в из текстового в excel (изменение текстового файла отслеживать желтельно именно по событию, а не по расписанию иначе возможен конфликт при совместном обращении и как следствие создание друго текстового файла). Последний раз редактировалось zander; 13.02.2009 в 17:39. |
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 24.01.2009
Сообщений: 113
|
![]()
Ну хоть подскажите какая функция умеет следить за размером текстового файла? А там мож я сам справлюсь...
|
![]() |
![]() |
![]() |
#7 | |
Форумчанин
Регистрация: 02.02.2009
Сообщений: 844
|
![]() Цитата:
![]() Подобная система позволит даже отличать файлы по расширениям (или иным признакам) и проводить для них различную обработку. Имеются следующие требования: 1. Читается каталог директории в переменную/файл и т.п. и ведем обработку только тех файлов которые есть в данном списке. 2. Удаляем файлы исключительно по имени и по одному по ходу обработки. 3. При начале работы с файлов, следует защитить его от изменений. Не знаю делает лит это ексель самостоятельно. Для того что бы исходная программа в случае появления новых данных в процессе обработки файла, создавала новый файл, а не дописывала в старый. Если это не возможно, следует перемещать обрабатываемый файл во временную директорию. 4. На время обработки считаного каталога директории, запретить слежение за директорией. Подобная схема работ с успехом применяется в Fido Net уже более 20 лет. ![]()
С уважением, Алексей.
|
|
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 24.01.2009
Сообщений: 113
|
![]()
Хотелось бы конечно следить за изменением конкретного файла... Но впринципе пока можно сделать и так. При появлении файла в директории запускать макрос, а файл стирать и ждать появление нового.... Вопрос только как за появлением следить из Excel? И желательно по появлению вайла в директории, а не по временному циклу.
|
![]() |
![]() |
![]() |
#9 | |
Форумчанин
Регистрация: 02.02.2009
Сообщений: 844
|
![]() Цитата:
-------------------------------------------------------------------------------- Как определить наличие файла средствами FSO ? 18.07.2007 Ответ: iFileName = "C:\Archive\Report.xls" Код:
-------------------------------------------------------------------------------- и вот по это ссылке есть много вкусного по текущему вопросу: http://www.msoffice.nm.ru/faq/macros/wsh.htm#faq319
С уважением, Алексей.
|
|
![]() |
![]() |
![]() |
#10 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]()
Попробуйте так:
Код:
Теперь при каждом увеличении размера файла с именем ИмяФайла (а также при первом запуске макроса) производится обработка этого файла. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ввод из текстового файла | bygoga | Паскаль, Turbo Pascal, PascalABC.NET | 14 | 23.11.2008 13:37 |
Задача на анализ текстового файла | Latedelivery | Паскаль, Turbo Pascal, PascalABC.NET | 4 | 31.10.2008 10:55 |
Открытие текстового файла | Victor | Microsoft Office Excel | 2 | 16.01.2008 03:42 |