Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
7 / 7 / 1
Регистрация: 31.01.2010
Сообщений: 51
1

Мониторинг файла?

12.07.2012, 18:49. Просмотров 848. Ответов 13
Метки нет (Все метки)

Здравствуйте, возникла некоторая проблема в создание программы которая бы выполняла некоторые операции с информацией файла,но при условие того что он открыт пользователем в момент работы программы.Выполняется в ОС Windows.
Не мог бы кто поделится соображениями по этому поводу,был бы весьма благодарен.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.07.2012, 18:49
Ответы с готовыми решениями:

мониторинг действий пользователя
Помогите пожалуйста написать программу мониторинг действий пользователя.Или хотя б код проги...

Мониторинг HTTP трафика
Всем здарова, возникла надобность мониторить http трафик и я так понимаю что для этого нужно...

Мониторинг файла
Добрый день. Может кто подскажет - есть контроллер под Linux ARM У него одна из лап заведена на...

Мониторинг наличия файла
Здравствуйте! необходимо организовать консольное приложение, которое осуществляет мониторинг...

13
-=ЮрА=-
12.07.2012, 19:06
  #2

Не по теме:

Mindz, твоё задание настолько же пространно как если бы попросить рассказать о перспективах квантовой телепортации функции состяния атомов гелия. Конкретно напиши что за файл и что с ним хочешь делать?

0
7 / 7 / 1
Регистрация: 31.01.2010
Сообщений: 51
12.07.2012, 19:14  [ТС] 3
Не думал что квантовая механика,может вызвать столь бурную аналогию.
Программа производит операцию считывания даты изменения файла,после чего проходить еше много процессов но суть их одна,они должны выполнятся при условие того что просматриваемый файл открыт пользователем в данный момент( в момент работы программы, то есть программа автоматом мониторит процесс).
вот такое не прокатит
C++
1
2
3
4
5
6
ifstream File("File.dat");
 
while( File.is_open() ) {
         someFunction();
         ........
}
0
Эксперт С++
8303 / 6057 / 602
Регистрация: 10.12.2010
Сообщений: 28,148
Записей в блоге: 26
12.07.2012, 19:19 4
1. Тип файла?
2. В какой программе будет открываться файл пользователем?
0
7 / 7 / 1
Регистрация: 31.01.2010
Сообщений: 51
12.07.2012, 19:21  [ТС] 5
.MPQ архив, открыт может быть чем угодно.
0
Заблокирован
Автор FAQ
12.07.2012, 19:26 6
Mindz, посмотри в сторону FindFirstChangeNotification, тут есть код https://www.cyberforum.ru/visu... ost2008026
(правда он немного другие цели приследовал)
0
0 / 0 / 0
Регистрация: 12.06.2012
Сообщений: 56
12.07.2012, 19:32 7
у меня похожее...
Вот есть файл текстовый. Нужно считать пробелы и выводить их текущее количество по запросу, а файл еще пишется. Если же файл перестает редактироваться, нужно вывести итог и завершиться.
Поправка: файл редактируется пользователем из вне.
0
7 / 7 / 1
Регистрация: 31.01.2010
Сообщений: 51
12.07.2012, 19:35  [ТС] 8
Что значит пишется?
Чем он у вас пишется инородной программой?
0
0 / 0 / 0
Регистрация: 12.06.2012
Сообщений: 56
12.07.2012, 19:37 9
да, инородной. не моей.
0
7 / 7 / 1
Регистрация: 31.01.2010
Сообщений: 51
12.07.2012, 19:45  [ТС] 10
Шас почитаю литературку,придумаем что нить.

Добавлено через 6 минут
рожать надо в эту сторону FILE_NOTIFY_CHANGE_SIZE
0
Эксперт С++
8303 / 6057 / 602
Регистрация: 10.12.2010
Сообщений: 28,148
Записей в блоге: 26
12.07.2012, 20:00 11
.MPQ архив, открыт может быть чем угодно.
Думаю задача не реализуема...
Т.е. некоторые программы не блокирую открываемые ими файлы, а некоторые блокируют и тут облом.

Но честно говоря я плохо понимаю что именно требуется? что реализовано? и с чем проблемы?

Добавлено через 5 минут
рожать надо в эту сторону FILE_NOTIFY_CHANGE_SIZE
А что при открытии файла его размер меняется?
0
7 / 7 / 1
Регистрация: 31.01.2010
Сообщений: 51
12.07.2012, 20:09  [ТС] 12
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
#include <cstdlib>
#include <iostream>
#include <fstream>
#include <sys/types.h>
#include <sys/stat.h>
#include <time.h>
#include <windows.h>
 
 
void setRevision();
void setDate( const char* );
void getFile( const char* );
 
int Revision = 0, Date = 0;
 
using namespace std;
 
int main( int argc, char *argv[] )
{   
    system("COLOR E");
    system("TITLE Revision Maker v 1.0.0");
    
    char Path[100], exit, change;
    
     cout << "\2" << endl;
            
    do {   
        cout << "\nInput your file name (file.dat):";
        cin >> Path;
        
        fstream File( Path );
        
        if( !File.is_open() ) {
            cout << "Wrong Path to directory file!" << endl;
            break;
        }
        
        while(ВОТ сюда надо впихнуть условие при котором проверяется открыт ли сейчас файл пользователем ) {
                 setDate( Path );
                 getFile( Path );
        }
        cout << "Revision: " << Revision << endl
             << "FileName:" << Path << endl;
             << "\nTo finish a program runtime?(Y\N):" << endl;
        cin >> exit;     
    } while( exit != "Y" || exit != "y" );
    
    cout << "bye, i see you later dev :)";
    system("PAUSE");
    return EXIT_SUCCESS;
}
 
void setDate( const char* file )
{
    struct _stat st;
    
    _stat( file, &st );
    
    Date = st.st_mtime;
}
 
 
void setRevision()
{ 
    Revision++;
}
 
void getFile( const char* name )
{
    int buff_revision, buff_date;
     
    fstream Revision_File( "Revision.ini" );
    
    if( !Revision_File.is_open() ) {
        ofstream New_File( "Revision.ini" );
        New_File << "[Information]" << endl
                 << "Revision=" << Revision << endl
                 << "Date=" << Date << endl
                 << "File=" << name << endl;
    } else {
            buff_revision = GetPrivateProfileInt(
                                                 "Information",
                                                 "Revision",
                                                 0,
                                                 "C:\\Dev-Cpp\\Projects\\RevisionMaker\\Revision.ini" 
                                                );
            buff_date = GetPrivateProfileInt(
                                             "Information",
                                             "Date",
                                             0,
                                             "C:\\Dev-Cpp\\Projects\\RevisionMaker\\Revision.ini" 
                                            );
            Revision = buff_revision;                                                    
            if( buff_date < Date ) {
                setRevision();
                Revision_File << "[Information]" << endl
                              << "Revision=" << Revision << endl
                              << "Date=" << Date << endl
                              << "File=" << name << endl;                          
            }           
      }
      Revision_File.close();         
}
Добавлено через 7 минут
Файл то меняется но вот вопрос как?Скорее всего данная функция не поможет.
0
0 / 0 / 0
Регистрация: 12.06.2012
Сообщений: 56
12.07.2012, 20:34 13
А винда по этому поводу случайно никаких сообщений не кидает?
0
7 / 7 / 1
Регистрация: 31.01.2010
Сообщений: 51
12.07.2012, 20:38  [ТС] 14
Да вроде нет,шас вот эту статью читаю,скорее всего она поможет решить проблему http://wasm.ru/article.php?article=lockfileswork
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.07.2012, 20:38

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Постоянный мониторинг файла
Добрый день. С php мало знаком, потому пишу на коленке. Целью является при возникновении...

Мониторинг изменений текстового файла
Добры день. Помогите с кодом, необходимо проверять на изменение теста файл(txt) с интервалом 1 сек...

Реализовать мониторинг модификаций файла
Добрый день. Нужна помощь при работе с файлами. Суть в следующем - есть текстовый файл. При...

Мониторинг .bat файла Zabbix
Всем привет. Подскажите, как можно организовать в заббиксе мониторинг количества запущенных...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.