aficher un fichier txt en live

Le
Rosalie Mignon
Bonjour

un fichier TXT est mis a jour par un processus exterieur a mon programme.
Moi, j'aimerai afficher le contenu de ce fichier en live, avec les mises a
jour en continu.
Ouvrir le fichier et afficher son contenu , je sais le faire, par contre je
ne sais pas si des mises a jour ont ete faites, sauf a rouvrir le fichier
tous les x secondes.
Sauriez vous m'indiquer un moyen de connaitre qu'un fichier a ete mise a
jour et comment afficher les nouvelles lignes sans reafficher tout le
fichier?

Merci d'avance.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
David
Le #19287951
Bonjour,

Si vous pouviez récupérer l'heure de la modification
du fichier, vous pensez que cela vous serait utile ?
En voici un moyen :

http://www.vbfrance.com/code.aspx?id%9

--
a+ Jean-Pol
Site Web : www.colovid.be
Site Web perso pour le fun : http://users.skynet.be/DAVID/
Cette page est transmise avec des électrons 100% recyclés.


"Rosalie Mignon" 4a0329e6$0$21836$
Bonjour

un fichier TXT est mis a jour par un processus exterieur a mon programme.
Moi, j'aimerai afficher le contenu de ce fichier en live, avec les mises a
jour en continu.
Ouvrir le fichier et afficher son contenu , je sais le faire, par contre
je ne sais pas si des mises a jour ont ete faites, sauf a rouvrir le
fichier tous les x secondes.
Sauriez vous m'indiquer un moyen de connaitre qu'un fichier a ete mise a
jour et comment afficher les nouvelles lignes sans reafficher tout le
fichier?

Merci d'avance.





Steph
Le #19288061
"Rosalie Mignon" 4a0329e6$0$21836$
Bonjour

un fichier TXT est mis a jour par un processus exterieur a mon programme.
Moi, j'aimerai afficher le contenu de ce fichier en live, avec les mises a
jour en continu.
Ouvrir le fichier et afficher son contenu , je sais le faire, par contre
je ne sais pas si des mises a jour ont ete faites, sauf a rouvrir le
fichier tous les x secondes.
Sauriez vous m'indiquer un moyen de connaitre qu'un fichier a ete mise a
jour et comment afficher les nouvelles lignes sans reafficher tout le
fichier?



Oui, avec les apis Win32 de notifications.
David
Le #19288191
Bonjour,

Ah oui, vous pensez à quelque chose comme ceci ? :
que j'utilise pour envoyer des données d'un programme à l'autre ?

Private Type COPYDATASTRUCT
dwData As Long
cbData As Long
lpData As Long
End Type

'Numero du Message windows
Private Const WM_COPYDATA = &H4A
'Déclaration des API
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal
lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (hpvDest
As Any, hpvSource As Any, ByVal cbCopy As Long)
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA"
(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As
Any) As Long


Private Sub Command1_Click()
Dim cdCopyData As COPYDATASTRUCT
Dim ThWnd As Long
Dim byteBuffer(1 To 255) As Byte
Dim strTemp As String

' Recherche le handle de l'application
' ThWnd = FindWindow(vbNullString, "App Client")
ThWnd = FindWindow(vbNullString, "Serveur")

strTemp = "Data à envoyer à l'application" '& " $"

' copie la chaine dans la structure à envoyer
Call CopyMemory(byteBuffer(1), ByVal strTemp, Len(strTemp))
cdCopyData.dwData = 3
cdCopyData.cbData = Len(strTemp) + 1
cdCopyData.lpData = VarPtr(byteBuffer(1))
'envoye du message
i = SendMessage(ThWnd, WM_COPYDATA, Me.hwnd, cdCopyData)

End Sub


Private Sub Form_Load()

Me.Caption = "App Serveur" 'Hex$(FindWindow(vbNullString, "App
Client1"))
End Sub

--
a+ Jean-Pol
Site Web : www.colovid.be
Site Web perso pour le fun : http://users.skynet.be/DAVID/
Cette page est transmise avec des électrons 100% recyclés.

"Steph" gtvd7q$rje$
"Rosalie Mignon" 4a0329e6$0$21836$
Bonjour

un fichier TXT est mis a jour par un processus exterieur a mon programme.
Moi, j'aimerai afficher le contenu de ce fichier en live, avec les mises
a jour en continu.
Ouvrir le fichier et afficher son contenu , je sais le faire, par contre
je ne sais pas si des mises a jour ont ete faites, sauf a rouvrir le
fichier tous les x secondes.
Sauriez vous m'indiquer un moyen de connaitre qu'un fichier a ete mise a
jour et comment afficher les nouvelles lignes sans reafficher tout le
fichier?



Oui, avec les apis Win32 de notifications.



Rosalie Mignon
Le #19288181
Merci pour cette reponse.

Ca veut dire que je dois faire une boucle qui test la date de mise a jour
du fichier ?.
Et l'affichage du fichier doit etre refaite ou puis-je completer l'affichage
precedent ?
merci



"David"
Bonjour,

Si vous pouviez récupérer l'heure de la modification
du fichier, vous pensez que cela vous serait utile ?
En voici un moyen :

http://www.vbfrance.com/code.aspx?id%9

--
a+ Jean-Pol
Site Web : www.colovid.be
Site Web perso pour le fun : http://users.skynet.be/DAVID/
Cette page est transmise avec des électrons 100% recyclés.


"Rosalie Mignon" 4a0329e6$0$21836$
Bonjour

un fichier TXT est mis a jour par un processus exterieur a mon programme.
Moi, j'aimerai afficher le contenu de ce fichier en live, avec les mises
a jour en continu.
Ouvrir le fichier et afficher son contenu , je sais le faire, par contre
je ne sais pas si des mises a jour ont ete faites, sauf a rouvrir le
fichier tous les x secondes.
Sauriez vous m'indiquer un moyen de connaitre qu'un fichier a ete mise a
jour et comment afficher les nouvelles lignes sans reafficher tout le
fichier?

Merci d'avance.









Rosalie Mignon
Le #19288171
Merci pour ces reponse.

Mais j'avoue que j'ai perdu le fil par rapport a mon souci.

Si vous pouviez vous mettre a un niveau plus accessible .

merci d'avance.


"David"
Bonjour,

Ah oui, vous pensez à quelque chose comme ceci ? :
que j'utilise pour envoyer des données d'un programme à l'autre ?

Private Type COPYDATASTRUCT
dwData As Long
cbData As Long
lpData As Long
End Type

'Numero du Message windows
Private Const WM_COPYDATA = &H4A
'Déclaration des API
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA"
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory"
(hpvDest As Any, hpvSource As Any, ByVal cbCopy As Long)
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA"
(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As
Any) As Long


Private Sub Command1_Click()
Dim cdCopyData As COPYDATASTRUCT
Dim ThWnd As Long
Dim byteBuffer(1 To 255) As Byte
Dim strTemp As String

' Recherche le handle de l'application
' ThWnd = FindWindow(vbNullString, "App Client")
ThWnd = FindWindow(vbNullString, "Serveur")

strTemp = "Data à envoyer à l'application" '& " $"

' copie la chaine dans la structure à envoyer
Call CopyMemory(byteBuffer(1), ByVal strTemp, Len(strTemp))
cdCopyData.dwData = 3
cdCopyData.cbData = Len(strTemp) + 1
cdCopyData.lpData = VarPtr(byteBuffer(1))
'envoye du message
i = SendMessage(ThWnd, WM_COPYDATA, Me.hwnd, cdCopyData)

End Sub


Private Sub Form_Load()

Me.Caption = "App Serveur" 'Hex$(FindWindow(vbNullString, "App
Client1"))
End Sub

--
a+ Jean-Pol
Site Web : www.colovid.be
Site Web perso pour le fun : http://users.skynet.be/DAVID/
Cette page est transmise avec des électrons 100% recyclés.

"Steph" gtvd7q$rje$
"Rosalie Mignon" news: 4a0329e6$0$21836$
Bonjour

un fichier TXT est mis a jour par un processus exterieur a mon
programme.
Moi, j'aimerai afficher le contenu de ce fichier en live, avec les mises
a jour en continu.
Ouvrir le fichier et afficher son contenu , je sais le faire, par contre
je ne sais pas si des mises a jour ont ete faites, sauf a rouvrir le
fichier tous les x secondes.
Sauriez vous m'indiquer un moyen de connaitre qu'un fichier a ete mise a
jour et comment afficher les nouvelles lignes sans reafficher tout le
fichier?



Oui, avec les apis Win32 de notifications.







Steph
Le #19290961
"David"
Bonjour,

Ah oui, vous pensez à quelque chose comme ceci ? :
que j'utilise pour envoyer des données d'un programme à l'autre ?



Non, ça n'a rien à voir :-)
c'est les diverses apis de notification de changement Shell ou System
voir sur le groupe des experts Winapi http://tinyurl.com/cvd7wv
(en C / C++, mais facile à traduire en VB)
Jacques93
Le #19291191
Bonjour Rosalie Mignon,
Rosalie Mignon a écrit :
Bonjour

un fichier TXT est mis a jour par un processus exterieur a mon programme.
Moi, j'aimerai afficher le contenu de ce fichier en live, avec les mises a
jour en continu.
Ouvrir le fichier et afficher son contenu , je sais le faire, par contre je
ne sais pas si des mises a jour ont ete faites, sauf a rouvrir le fichier
tous les x secondes.
Sauriez vous m'indiquer un moyen de connaitre qu'un fichier a ete mise a
jour et comment afficher les nouvelles lignes sans reafficher tout le
fichier?




Pour la première partie, peut être jeter un œil sur
'SHChangeNotifyRegister' :


Un exemple ici :


Une modification de fichier provoquera un événement de type
'SHCNE_UPDATEITEM' . Dans l'exemple ci dessus :

SHCNE_UPDATEITEM
first item displayname: Chrome.txt
first item path: C:Chrome.txt

Il te reste donc à filtrer les événements en fonction du nom et du
chemin qui t'intéresse

--

Cordialement,

Jacques.
Publicité
Poster une réponse
Anonyme