Accueil > Forum > > > > partage de fichier entre programes
partage de fichier entre programes
jeudi 18 août 2005 à 23:22:39 |
partage de fichier entre programes

loicmichel
|
Bonjour, Mon problème : une application 1 que je ne controle pas écrit une ligne dans un fichier texte toutes les 60 secondes environ. ( temps variable ) Mon programme en VB net doit recuperer cette derniere ligne. J'ai ecrit une routine qui lit ce fichier texte et en extrait la dernière ligne. Ma routine fonctionne bien lorsque l'application 1 est arretée. Lorsque l'application 1 est en fonctionnement, je n'arrive plus a lire le fichier texte, je n'ai plus accès a ce fichier. J'ai contourné le problème en faisant une copie du fichier texte et en lisan la copie. je me demande si il n'y a pas de solution plus élégante, d'autant que le disque dur ne va pas apprècier a la longue. Tout cela sous XP pro. Merci de votre aide, Loïc Loic MICHEL
|
|
jeudi 18 août 2005 à 23:38:58 |
Re : partage de fichier entre programes

BruNews
|
Ecris une DLL en natif (C) que tu injectes dans l'autre processus par un SetWindowsHookEx. La DLL doit contenir une routine d'interception de WriteFile (hook API) et te refiler les octets en cours d'écriture dans un FileMapping. Voila tu voulais de l'élégant, c'est un peu de prog system.
ciao... BruNews, MVP VC++
|
|
vendredi 19 août 2005 à 11:10:01 |
Re : partage de fichier entre programes

aieeeuuuuu
|
Salut
quelle méthode utilises-tu pour lire dans le fichier
personnellement j'ai deja ouvert un fichier .txt dans lequel une application que je ne controlais pas ecrivais en permancence.
avec VB j'arrivais a ouvrir le fichier jusqu'a la fin, et si j'atendais un peun meme sans fermer le fichier, je pouvais lire a nouveau qq secondes plus tard lorsque de nouvelles lignes avaient été inserées.
pour info j'utilisais l'objet "filesystemobject" pour aller lire dans mon fichier.
j'avais aucun pb
|
|
vendredi 19 août 2005 à 11:26:00 |
Re : partage de fichier entre programes

BruNews
|
Si le prog qui écrit ouvre le fichier en mode exclusif, normal qu'il ne puisse pas lire en même temps, il n'y a que le hook API qui puisse récupérer ce qui s'écrit en simultané.
ciao... BruNews, MVP VC++
|
|
vendredi 19 août 2005 à 14:48:20 |
Re : partage de fichier entre programes

BasicInstinct
|
'lut ca me parait certe plus elegant de "hooker" le writefile mais carrement violent a coder (ou alors je me trompe). La copie du fichier est a mes yeux la meilleure solution, a moins que ton fichier fasse plusieurs Mo. ++  BasicInstinct 
|
|
vendredi 19 août 2005 à 15:23:41 |
Re : partage de fichier entre programes

aieeeuuuuu
|
si le systeme arrive a copier le fichier, c'est bien qu'il arrive a le lire. je ne suis pas expert en ce qui concerne les verous qui existe lors de l'ecriture dans un fichier. Mais je sais qu'il est possible dans certains cas de lire dans un fichier ouvert en ecriture par une autre appli. donc je ne vois pas l'interet de la copie avant.
|
|
vendredi 19 août 2005 à 15:34:51 |
Re : partage de fichier entre programes

BruNews
|
"dans certains cas" n'est pas une façon d'écrire un prog correct. Je répète: Si ouvert en mode exclusif personne d'autre n'accèdera, ni en lecture ni en quoi que ce soit.
BasicInstinct: je te rassure, rien de bien difficile pour qui maitrise le C et API, tu peux trouver des exemples sur cppfrance de hook API.
ciao... BruNews, MVP VC++
|
|
vendredi 19 août 2005 à 15:57:33 |
Re : partage de fichier entre programes

aieeeuuuuu
|
quand je disais "dans certain cas" je faisais alluion a la facon dont le ficheir etait ouvert.
or il me semble que le programme tiers qui ecrit dans le fichier le fera toujours de la meme facon. donc il faut voir comment il ecrit dans ce fichier et voir si cela fonctionne. et donc je repete : si le systeme arrive a copier le fichier, c'est que le mode d'ouverture n'est pas si "exclusif" que ca ! donc il doit pouvoir lui aussi aller lire dedans. et pour l'avoir deja fait, je garanti que c'est possible
|
|
vendredi 19 août 2005 à 16:11:25 |
Re : partage de fichier entre programes

BruNews
|
Si le system a ouvert le handle fichier avec FILE_SHARE_READ positionné sur le 3eme param de CreateFile alors il pourra copier et/ou lire sinon hook API obligatoire.
ciao... BruNews, MVP VC++
|
|
lundi 22 août 2005 à 22:14:27 |
Re : partage de fichier entre programes

loicmichel
|
Bonsoir, Je ne connais que Visual basic .net.
Avec un streamreader, Dim sr As StreamReader = New StreamReader(path) je n'arrivais pas accèder au fichier.
Maintenant, j'utilise : Dim b(1024) As Byte Dim temp8 As System.Text.UTF8Encoding = New System.Text.UTF8Encoding(True) Dim fs As FileStream = File.Open(Last_FileModFullName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite) Do While fs.Read(b, 0, b.Length) > 0 ' traitement du contenu du fichier Loop fs.Close()
et cela a l'air de fonctionner.
Dans tous les cas, Notepad ouvre ce fichier texte sans problèmes. Il y a donc bien une solution.
Merci, Loic MICHEL
|
|
Cette discussion est classée dans : fichier, ligne, application, texte, partage
Répondre à ce message
Livres en rapport
|
Derniers Blogs
GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|