Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
Mindz
 Аватар для Mindz
7 / 7 / 1
Регистрация: 31.01.2010
Сообщений: 51
12.07.2012, 18:49     Мониторинг файла? #1
Здравствуйте, возникла некоторая проблема в создание программы которая бы выполняла некоторые операции с информацией файла,но при условие того что он открыт пользователем в момент работы программы.Выполняется в ОС Windows.
Не мог бы кто поделится соображениями по этому поводу,был бы весьма благодарен.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.07.2012, 18:49     Мониторинг файла?
Посмотрите здесь:

C++ Перебор файла посимвольно, как организовать цикл, работающий до конца файла.
C++ с помощью очереди за один просмотр файла напечатать элементы файла в заданном порядке
C++ мониторинг действий пользователя
C++ Сформировать два текстовых файла из целых чисел. Записать в третий файл минимальный элемент первого файла и максимальный элемент второго файла
C++ Мониторинг каталога на предмет изменения содержимого
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-=ЮрА=-
12.07.2012, 19:06
  #2

Не по теме:

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

Mindz
 Аватар для Mindz
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();
         ........
}
Avazart
 Аватар для Avazart
6900 / 5140 / 252
Регистрация: 10.12.2010
Сообщений: 22,587
Записей в блоге: 17
12.07.2012, 19:19     Мониторинг файла? #4
1. Тип файла?
2. В какой программе будет открываться файл пользователем?
Mindz
 Аватар для Mindz
7 / 7 / 1
Регистрация: 31.01.2010
Сообщений: 51
12.07.2012, 19:21  [ТС]     Мониторинг файла? #5
.MPQ архив, открыт может быть чем угодно.
-=ЮрА=-
Заблокирован
Автор FAQ
12.07.2012, 19:26     Мониторинг файла? #6
Mindz, посмотри в сторону FindFirstChangeNotification, тут есть код http://www.cyberforum.ru/visual-cpp/...ml#post2008026
(правда он немного другие цели приследовал)
pianist
0 / 0 / 0
Регистрация: 12.06.2012
Сообщений: 56
12.07.2012, 19:32     Мониторинг файла? #7
у меня похожее...
Вот есть файл текстовый. Нужно считать пробелы и выводить их текущее количество по запросу, а файл еще пишется. Если же файл перестает редактироваться, нужно вывести итог и завершиться.
Поправка: файл редактируется пользователем из вне.
Mindz
 Аватар для Mindz
7 / 7 / 1
Регистрация: 31.01.2010
Сообщений: 51
12.07.2012, 19:35  [ТС]     Мониторинг файла? #8
Что значит пишется?
Чем он у вас пишется инородной программой?
pianist
0 / 0 / 0
Регистрация: 12.06.2012
Сообщений: 56
12.07.2012, 19:37     Мониторинг файла? #9
да, инородной. не моей.
Mindz
 Аватар для Mindz
7 / 7 / 1
Регистрация: 31.01.2010
Сообщений: 51
12.07.2012, 19:45  [ТС]     Мониторинг файла? #10
Шас почитаю литературку,придумаем что нить.

Добавлено через 6 минут
рожать надо в эту сторону FILE_NOTIFY_CHANGE_SIZE
Avazart
 Аватар для Avazart
6900 / 5140 / 252
Регистрация: 10.12.2010
Сообщений: 22,587
Записей в блоге: 17
12.07.2012, 20:00     Мониторинг файла? #11
.MPQ архив, открыт может быть чем угодно.
Думаю задача не реализуема...
Т.е. некоторые программы не блокирую открываемые ими файлы, а некоторые блокируют и тут облом.

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

Добавлено через 5 минут
рожать надо в эту сторону FILE_NOTIFY_CHANGE_SIZE
А что при открытии файла его размер меняется?
Mindz
 Аватар для Mindz
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 минут
Файл то меняется но вот вопрос как?Скорее всего данная функция не поможет.
pianist
0 / 0 / 0
Регистрация: 12.06.2012
Сообщений: 56
12.07.2012, 20:34     Мониторинг файла? #13
А винда по этому поводу случайно никаких сообщений не кидает?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.07.2012, 20:38     Мониторинг файла?
Еще ссылки по теме:

Создать программу, реализующую: создание файла, просмотр файла, поиск по файлу, выход C++
C++ Мониторинг ошибок в Visual Studio 2013
C++ Мониторинг HTTP трафика

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

Или воспользуйтесь поиском по форуму:
Mindz
 Аватар для Mindz
7 / 7 / 1
Регистрация: 31.01.2010
Сообщений: 51
12.07.2012, 20:38  [ТС]     Мониторинг файла? #14
Да вроде нет,шас вот эту статью читаю,скорее всего она поможет решить проблему http://wasm.ru/article.php?article=lockfileswork
Yandex
Объявления
12.07.2012, 20:38     Мониторинг файла?
Ответ Создать тему
Опции темы

Текущее время: 16:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru