PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Fichier externe
Fichier externe
Débuté par atrioux, 12 aoû. 2004 18:09 - 5 réponses
Posté le 12 août 2004 - 18:09
J'ai un programme qui m'envoi en permanence (ts les secondes) des
informations dans un fichier txt
chaque info correspond a une ligne d'enregistrement

je dois a partir d'un autre programme recuperer ces infos ligne par ligne
pour les inscrire dans ma base hyperfile puis les supprimer apres
enregistrement pour eviter les doublons

pendant ce temps l'autre programme doit pouvoir continuer a enregistrer les
nouvelles infos

ma question est comment peut on lire dans un fichier externe une ligne, la
traiter puis la supprimer sans bloquer l'acces a ce fichier?

ou Comment dois je proceder au mieux?

merci

Arnaud
Posté le 12 août 2004 - 18:13
Salut !

On 12-Aug-2004, "Arnaud TRIOUX" <atrioux@horloges-huchez.fr> wrote:

J'ai un programme qui m'envoi en permanence (ts les secondes) des
informations dans un fichier txt
chaque info correspond a une ligne d'enregistrement

je dois a partir d'un autre programme recuperer ces infos ligne par ligne
pour les inscrire dans ma base hyperfile puis les supprimer apres
enregistrement pour eviter les doublons

pendant ce temps l'autre programme doit pouvoir continuer a enregistrer
les
nouvelles infos

ma question est comment peut on lire dans un fichier externe une ligne, la
traiter puis la supprimer sans bloquer l'acces a ce fichier?

ou Comment dois je proceder au mieux?

merci

Arnaud


J'ai eu à résoudre un problème du même genre ...
J'ai résolu le problème de la manière suivante.
Le premier programme écrit dans un fichier temporaire les données toutes les
secondes.
Toutes les minutes, il ferme ce fichier et le renomme avec une extension
précise, puis reprend
son petit traintrain ...
Pendant ce temps, le second programme traite les fichiers ayant l'extension
choisie et les efface après
traitement ...

Je ne sais si cela peut convenir dans ton cas ... en tout cas , chez moi, je
n'ai pas eu de problème ...

Bien à toi !
--
Marcel Berman
c/o Managing Business SPRL
Allée du Petit Paris, 11
B - 1410 - Waterloo
Tel : +32 2 351.60.64
Fax : +32 2 351.45.78
Gsm : +32 475.799.477
Posté le 12 août 2004 - 18:41
"Arnaud TRIOUX" <atrioux@horloges-huchez.fr> wrote:

J'ai un programme qui m'envoi en permanence (ts les secondes) des
informations dans un fichier txt
chaque info correspond a une ligne d'enregistrement

je dois a partir d'un autre programme recuperer ces infos ligne par ligne
pour les inscrire dans ma base hyperfile puis les supprimer apres
enregistrement pour eviter les doublons

pendant ce temps l'autre programme doit pouvoir continuer a enregistrer

les
nouvelles infos

ma question est comment peut on lire dans un fichier externe une ligne,

la
traiter puis la supprimer sans bloquer l'acces a ce fichier?

ou Comment dois je proceder au mieux?

merci

Arnaud


Difficile de répondre sans connaitre le fonctionnement de l'autre programme.
Une solution serait de copier le fichier, puis de supprimer l'original avant
de lire la copie. Mais il faut être sûr que le programme n'a pas modifié
le fichier entre la copie et la suppression, ce qui n'est pas évident.
Autre solution : enregistrer la position courante dans le fichier,après la
dernière lecture, et reprendre la lecture à cette position + 1. Mais il faut
alors s'assurer que le fichier n'as pas été vidé.

Frédéric.
Posté le 12 août 2004 - 18:42
Arnaud TRIOUX wrote:
J'ai un programme qui m'envoi en permanence (ts les secondes) des
informations dans un fichier txt
chaque info correspond a une ligne d'enregistrement

je dois a partir d'un autre programme recuperer ces infos ligne par ligne
pour les inscrire dans ma base hyperfile puis les supprimer apres
enregistrement pour eviter les doublons

pendant ce temps l'autre programme doit pouvoir continuer a enregistrer les
nouvelles infos

ma question est comment peut on lire dans un fichier externe une ligne, la
traiter puis la supprimer sans bloquer l'acces a ce fichier?

ou Comment dois je proceder au mieux?

merci

Arnaud



D'un coté le fichier est alimenté en ajout seul (fin de fichier)
de l'autre il est vidé par le haut.

D'une manière comme d'une autre, il faudra à un moment rendre possible
l'interrupption (attente) de l'alimentation de manière à assurer la
purge (renommage d'une copie purgée).

Au final un fichier HF poserait mois de pb car indiférent aux deux flux
si bien construit !

++ R&B
Posté le 12 août 2004 - 20:53
Arnaud TRIOUX <atrioux@horloges-huchez.fr> a écrit:

J'ai un programme qui m'envoi en permanence (ts les secondes) des
informations dans un fichier txt


Attention au crach du disque.
A écrire toujours au même endroit, ton disque dur risque de ne pas
apprécier.
Il vaut mieux privilégier un échange d'informations différent.
Si tu peux faire cela en mémoire, par DDE, par socket ou par liaison série
je pense que tu auras moins de problème à long terme.
Il y a aussi la solution du disque virtuel en mémoire (vdisk) qui sera
peut-être la plus adaptée car le disque est vu comme un disque dur physique
et il peut être partagé en réseau.

---
Eric LAURENT
nospam.laurent.systel@wanadoo.fr
(enlever nospam.)
---
Posté le 13 août 2004 - 09:33
Si le programme externe 'ferme', le fichier txt, tu as la solution de
renomer le fichier txt origine et de recreer un fichier txt vide pour la
suite.
Ensuite tu exploite tranquillement le fichier renommé que tu detruit en fin
de traitement.

"Arnaud TRIOUX" <atrioux@horloges-huchez.fr> a écrit dans le message de
news: 411b7a33@news.pcsoft.fr...

J'ai un programme qui m'envoi en permanence (ts les secondes) des
informations dans un fichier txt
chaque info correspond a une ligne d'enregistrement

je dois a partir d'un autre programme recuperer ces infos ligne par ligne
pour les inscrire dans ma base hyperfile puis les supprimer apres
enregistrement pour eviter les doublons

pendant ce temps l'autre programme doit pouvoir continuer a enregistrer

les
nouvelles infos

ma question est comment peut on lire dans un fichier externe une ligne, la
traiter puis la supprimer sans bloquer l'acces a ce fichier?

ou Comment dois je proceder au mieux?

merci

Arnaud