Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

aficher un fichier txt en live

7 réponses
Avatar
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.

7 réponses

Avatar
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" a écrit dans le message de 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?

Merci d'avance.





Avatar
Steph
"Rosalie Mignon" a écrit dans le message de 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.
Avatar
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" a écrit dans le message de news:
gtvd7q$rje$
"Rosalie Mignon" a écrit dans le message de 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.



Avatar
Rosalie Mignon
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" a écrit dans le message de news:

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" a écrit dans le message de 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?

Merci d'avance.









Avatar
Rosalie Mignon
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" a écrit dans le message de news:

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" a écrit dans le message de news:
gtvd7q$rje$
"Rosalie Mignon" a écrit dans le message de
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.







Avatar
Steph
"David" a écrit dans le message de news:

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)
Avatar
Jacques93
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' :

<http://msdn.microsoft.com/en-us/library/bb762120(VS.85).aspx>

Un exemple ici :

<http://btmtz.mvps.org/shnotify/>

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.