begin process at 2012 02 14 15:43:10
  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

LECTURE ET AFFICHAGE D'UN FICHIER TEXTE ??? [ par Daniel ] Bonsoir,Je souhaite :-1- Ouvrir-2- Lire-3- AfficherUn fichier texte dans une textBox, avec prise en comptedes retour à la ligne présent dans ce fichie supprimer UNE ligne dans un fichier txt [ par vince ] mon fichier texte contient par exemple 3 lignes de texte. Je souhaite supprimer la 1ere et en rajouter une à la fin (comme une mémoire déroulante).Mer Inserrer une phrase dans un fichier texte. [ par Brodeur ] Bonjour, je voudrais savoir comment faire pour :-ouvrir un fichier txtet y inserrer la phrase "Vive le forum de Visual Basic France" a la ligne 5 de c extraire un fichier texte [ par olivier ] je voudrait extraire un texte et le mettre dans une base de données sachant que le texte a sa 1° ligne qui permet d'avoir le nom des champsdonc sous v Comment lir un ligne specifique d'un fichier texte [ par KoZo ] Comment lire un ligne specifique d'un fichier texte et la mettre ds un texteboxMerci par exemple pour lir la ligne 2 du fichier bob.txtmerci Lire une ligne précise d'un fichier texte [ par morpheus2096 ] J'ai un fichier texte, je veux lire la ligne 31, comment je fais ?merci beaucoup appel d'une ligne specifique dans un fichier texte [ par [FL]WarlocK ] voila je fait appel a un fichier texte qui me sert de base de donnéeet je voudrai selectionner une ligne aléatoirement pour la réinscrire dans un text Effacer une ligne dans un fichier texte [ par Tristan ] Bonjour a tous,Je voudrais pouvoir effacer une ligne quelconque dans un fichier txt.Exemple ****Le fichier initial est :ceci est la premiere lignececi


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

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 : 2,340 sec (4)

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