Textdatei überwachen!?



  • nein es handelt sich ausschließlich um Textdateien (.txt, .dat, ect. )



  • Leute, Leute

    FindFirstChangeNotification



  • *g*
    stimmt das gibs auch noch
    aber leider nix dafür er will ja noch lesen was geändert worden ist......

    Hellsgore



  • eben .... und ich muss die geänderten Daten auch noch anzeigen lassen und das am besten noch in Echtzeit...

    sprich.....prog schreibt log.....
    mein Prog zeigt im selben moment die neuen einträge des log´s

    Gruß Master



  • Alles viel zu umständlich.

    Win gibt eine Nachricht rüber wenn die Datei aktualisiert / geändert wurde.
    Also brauchst du nur auf die Nachricht warten und dann reagieren.

    Code Schnispsel und genaueres folgt wenn ich abens zuhause bin.



  • das wäre nicht schlecht. bitte daran denken, das es angezeigt werden muss, welche daten dazu gekommen sind.
    Ich suche mir die anforderungen ja nicht aus.



  • Ich habe auch eine Idee, die fast an Realtime rankommt!
    Es gibt in der WinApi(tut mir leid, ich weiß dass es das MFC-Forum ist) für das NTFS-Dateisystem ein Befehl, der alle Änderungen an Ordnern überwacht. Dazu zählt auch das verändern von Dateien. Entweder du baust dir einen solchen selbst oder du suchst den Apiaufruf.



  • Lutz schrieb:

    Ich habe auch eine Idee, die fast an Realtime rankommt!
    Es gibt in der WinApi(tut mir leid, ich weiß dass es das MFC-Forum ist) für das NTFS-Dateisystem ein Befehl, der alle Änderungen an Ordnern überwacht. Dazu zählt auch das verändern von Dateien. Entweder du baust dir einen solchen selbst oder du suchst den Apiaufruf.

    Schön das du eine Idee hast aber diese habe ich bereits gepostet.

    @mastertango:
    Program startet, öffnet file und speichert den Filezeiger der letzten zeile ab.
    Nun kommt die Überwachung. Sollte hier ein Event ausgelöst werden dann File öffnen,bis zum letzten gespeicherten Filezeiger gehen, alles auslesen bis Fileende und den Zeiger wieder speichern. U.s.w.
    Warum schaust du dir eigentlich nicht den Source von tail an ?



  • So, nu der Code Schnipsel für das Überwachen auf Änderung an der Datei.
    Teil 2 der Aufgabe wie im Beitrag zuvor beschrieben lösen, fertig !

    DWORD dwWaitStatus;
    HANDLE dwChangeHandles;
    
    erg = TRUE;
    
    CStdioFile file;
    CString datei, text;
    
    	// ueberwachen der statusdatei !!
    	dwChangeHandles = FindFirstChangeNotification( m_statusverzeichnis, FALSE, FILE_NOTIFY_CHANGE_LAST_WRITE );
    	// FILE_NOTIFY_CHANGE_DIR_NAME
    	// FILE_NOTIFY_CHANGE_LAST_WRITE
    
    	if (dwChangeHandles == INVALID_HANDLE_VALUE) 
    		{
    			ExitProcess (GetLastError());
    		}
    
    	while (erg == TRUE)
    		{
    		// Warten auf benachrictigung, das datei geändert wurde
    		dwWaitStatus = WaitForSingleObject(dwChangeHandles, INFINITE);
    
    		switch (dwWaitStatus)
    			{
    			case WAIT_OBJECT_0:
    				// aktualisierte daten lesen und reagieren !!!!!!!
    
    			AfxMessageBox("datei geändert !!");
    
    }
    
    				// Überwachung auf Nächste Änderung einstellen
    				if (FindNextChangeNotification( dwChangeHandles) == FALSE)
    					ExitProcess(GetLastError());
    
    				AfxMessageBox("datei geändert 2 !!");
    
    					}
    			break;
    
    			default:
    					// ExitProcess(GetLastError());
    				;
    			}
    
    	}
    
    	FindCloseChangeNotification( dwChangeHandles);	// überwachung aus
    



Anmelden zum Antworten