Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.03.2009, 20:18   #1
zander
Форумчанин
 
Регистрация: 24.01.2009
Сообщений: 113
По умолчанию помогали здесь добрые людис мониторингом файла - расширить бы.

Вот код (ниже) который мониторит конкретный файл, можно ли как то сделать что бы параллельно осуществлялся мониторинг двух файлов?
(http://www.programmersforum.ru/showt...ghlight=zander)

Public Const ИмяФайла = "C:\Documents and Settings\Игорь\Рабочий стол\Текстовый документ.txt"
Public РазмерФайла As Long, ПоискИзмененийВременноОтключён As Boolean
Public Const ВременнойИнтервалМеждуПроверками = 2

Sub СлежениеЗаФайлом()
Do While True ' бесконечный цикл
If Not ПоискИзмененийВременноОтключён Then
НовыйРазмерФайла = CreateObject("scripting.filesystemo bject").GetFile(ИмяФайла).Size
If НовыйРазмерФайла > РазмерФайла Then ОбработкаФайла: РазмерФайла = НовыйРазмерФайла
End If
t = Timer: While t + ВременнойИнтервалМеждуПроверками > Timer: DoEvents: Wend ' пауза
Loop
End Sub

Sub ОбработкаФайла()
Application.ScreenUpdating = False
Workbooks.OpenText Filename:=ИмяФайла, DataType:=xlDelimited, Comma:=True
ActiveWorkbook.Worksheets(1).Cells. Copy ThisWorkbook.Worksheets(1).[a1]
ActiveWorkbook.Close False
Application.ScreenUpdating = True

ПоискИзмененийВременноОтключён = True
' здесь запускается Ваш макрос
' пока он работает, изменения в текстовом файле не отслеживаются
ПоискИзмененийВременноОтключён = False
End Sub
zander вне форума Ответить с цитированием
Старый 15.03.2009, 23:12   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

Попробуйте так:
Код:
Public Const ИмяФайла1 = "C:\Documents and Settings\Игорь\Рабочий стол\Текстовый документ 1.txt"
Public Const ИмяФайла2 = "C:\Documents and Settings\Игорь\Рабочий стол\Текстовый документ 2.txt"
Public РазмерФайла1 As Long, РазмерФайла2 As Long, ПоискИзмененийВременноОтключён As Boolean
Public Const ВременнойИнтервалМеждуПроверками = 2

Sub СлежениеЗаФайлом()
    Do While True    ' бесконечный цикл
        If Not ПоискИзмененийВременноОтключён Then
            НовыйРазмерФайла1 = CreateObject("scripting.filesystemobject").GetFile(ИмяФайла1).Size
            If НовыйРазмерФайла1 > РазмерФайла1 Then ОбработкаФайла (ИмяФайла1): РазмерФайла1 = НовыйРазмерФайла1
            
            НовыйРазмерФайла2 = CreateObject("scripting.filesystemobject").GetFile(ИмяФайла2).Size
            If НовыйРазмерФайла2 > РазмерФайла2 Then ОбработкаФайла (ИмяФайла2): РазмерФайла2 = НовыйРазмерФайла2
        End If
        t = Timer: While t + ВременнойИнтервалМеждуПроверками > Timer: DoEvents: Wend    ' пауза
    Loop
End Sub

Sub ОбработкаФайла(ByVal ИмяФайла As String)
    Application.ScreenUpdating = False
    Workbooks.OpenText Filename:=ИмяФайла, DataType:=xlDelimited, Comma:=True
    ActiveWorkbook.Worksheets(1).Cells.Copy ThisWorkbook.Worksheets(1).[a1]
    ActiveWorkbook.Close False
    Application.ScreenUpdating = True

    ПоискИзмененийВременноОтключён = True
    ' здесь запускается Ваш макрос
    ' пока он работает, изменения в текстовом файле не отслеживаются
    ПоискИзмененийВременноОтключён = False
End Sub
Для мониторинга большего количества файлов имеет смысл полностью переделать макрос.
EducatedFool вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скомпилируйте 3 малюсеньких файла, люди добрые DelphiLoser Общие вопросы Delphi 4 17.01.2008 16:10