begin process at 2010 02 10 08:09:33
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Visual Basic & VB.NET

 > 

Archives Visual Basic

 > 

Fichier / Disque

 > 

partage de fichier entre programes


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

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

Administrateur CodeS-SourceS
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

Administrateur CodeS-SourceS
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

Membre Club
'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

Administrateur CodeS-SourceS
"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

Administrateur CodeS-SourceS
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


1 2

Cette discussion est classée dans : fichier, ligne, application, texte, partage


Répondre à ce message

Sujets en rapport avec ce message

recuperer un carractere precit dans un fichier texte [ par jbbordas87 ] Non Non Non je ne suis pas fénéant. J'ai bien deja chercher si le sujet n'etait pas dans le forum. Il existe bien mais malheureusement  mon niveau ne faire une comparaison entre une variable et une ligne d'un fichier texte [ par cassecroute ] Bonjour, bon je suis débutant dans le c#, et je m'exerce dans les fichiers, et je voudrais faire un question/réponse, donc j'ai un fichier avec des q faire une comparaison entre une variable et une ligne d'un fichier texte [ par cassecroute ] Bonjour, bon je suis débutant dans le c#, et je m'exerce dans les fichiers, et je voudrais faire un question/réponse, donc j'ai un fichier avec des q AFFICHER UNE PAR UNE LES DATAS D'UN FICHIER TEXTE [ par DHN93160 ] CHERS MESSIEURS,MESDAMES JE RECOIS UN FICHIER TEXTE AVEC DES DONNEES POUR CHAQUE LIGNE EX: LIGNE 1:ANDRE;MR;SEXE;M;ADRESSE;131 RUE DE TOLBIAC;75013;P INTEGRER UN FICHIER TEXTE [ par DHN93160 ] CHERS DEVELOPPEURS,DEVELOPTRICE, J'AI UN FICHIER TEXTE D'UNE TRENTAINE DE LIGNES AVEC POUR CHAQUE LIGNE LES DONNEES TELS QUE : NOM,PRENOM,ADRESSE,CP, Aller à la dernière ligne d'un fichier texte et recherche une chaine de caractére [ par ARENIUS ] Bonjour à tous,  Voila je suis un gros débutant en VB alors excusez mes questions qui peuvent sembler triviales à certains fin de ligne dans un fichier texte [ par morcelet ] Bonjour a tous. voila j'utilise ce system pour lire un fichier texte :         FirstHeader = 0         FirstHeader = FirstHeader + 7 Lire dans un fichier texte sous une ligne de texte? [ par rickydee22 ] Bonjour j'ai un fichier texte dans lequel je règle mes paramètre pour mon programmeexemple : chemin d'accès, constante.... que l'usager peut défénir s Mettre le contenu d'un fichier texte dans plusieurs variables [ par bobolechef ] Bonjour à tous,Je voudrais savoir s'il est possible de récupérer dans plusieurs variables le contenu de mon fichier texte?Il y a 25 lignes dans mon fi Fichier Texte : supprimer une ligne [ par cherrymoon08 ] Bonjour, voila je voudrias savoir si il existe une fonction en VB.net pour supprimer une ligne dans un fichier texte ou alors faut-il remplacer le con


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,250 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales