j'ai un programme qui écrit dans un fichier texte de log ( c'est un
programme que je n'ai pas développé et j'ai pas les sources).
avec mon programme windev, j'aimerai lire chaque nouvelle ligne écrite dans
ce fichier de façon continue.
Est ce possible avec windev ? sans avoir à ouvri/lire/fermer ce fichier
toutes les secondes ( surtout s'il est volumineux )
Ce qui m'interesse c'est lire ligne par ligne ( non pas caractere par
caractere, mais je peux adapter) , ca ressemble un peu à une fonction tail
sous unix
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Pierre BOUSQUET
1. ouvrir le fichier au lancement du projet 2. se positionner à la dernière lecture (voir 4.) avec fPositionne() 3. lancer un timer qui appelle la procédure 4. 4. lire les lignes avec flitligne() et stocker la position en cours dans le fichier avec fPositionne() 5. fermer le fichier lors de l'arret de l'appli
Vincent vient de nous annoncer :
Bonjour,
j'ai un programme qui écrit dans un fichier texte de log ( c'est un programme que je n'ai pas développé et j'ai pas les sources). avec mon programme windev, j'aimerai lire chaque nouvelle ligne écrite dans ce fichier de façon continue. Est ce possible avec windev ? sans avoir à ouvri/lire/fermer ce fichier toutes les secondes ( surtout s'il est volumineux )
Ce qui m'interesse c'est lire ligne par ligne ( non pas caractere par caractere, mais je peux adapter) , ca ressemble un peu à une fonction tail sous unix
une idée ?
Merci
Vincent
-- Pierre BOUSQUET
" Ne me dites pas que ce problème est difficile. S'il n'était pas difficile, ce ne serait pas un problème. "
1. ouvrir le fichier au lancement du projet
2. se positionner à la dernière lecture (voir 4.) avec fPositionne()
3. lancer un timer qui appelle la procédure 4.
4. lire les lignes avec flitligne() et stocker la position en cours
dans le fichier avec fPositionne()
5. fermer le fichier lors de l'arret de l'appli
Vincent vient de nous annoncer :
Bonjour,
j'ai un programme qui écrit dans un fichier texte de log ( c'est un programme
que je n'ai pas développé et j'ai pas les sources).
avec mon programme windev, j'aimerai lire chaque nouvelle ligne écrite dans
ce fichier de façon continue.
Est ce possible avec windev ? sans avoir à ouvri/lire/fermer ce fichier
toutes les secondes ( surtout s'il est volumineux )
Ce qui m'interesse c'est lire ligne par ligne ( non pas caractere par
caractere, mais je peux adapter) , ca ressemble un peu à une fonction tail
sous unix
une idée ?
Merci
Vincent
--
Pierre BOUSQUET
" Ne me dites pas que ce problème est difficile.
S'il n'était pas difficile, ce ne serait pas un problème. "
1. ouvrir le fichier au lancement du projet 2. se positionner à la dernière lecture (voir 4.) avec fPositionne() 3. lancer un timer qui appelle la procédure 4. 4. lire les lignes avec flitligne() et stocker la position en cours dans le fichier avec fPositionne() 5. fermer le fichier lors de l'arret de l'appli
Vincent vient de nous annoncer :
Bonjour,
j'ai un programme qui écrit dans un fichier texte de log ( c'est un programme que je n'ai pas développé et j'ai pas les sources). avec mon programme windev, j'aimerai lire chaque nouvelle ligne écrite dans ce fichier de façon continue. Est ce possible avec windev ? sans avoir à ouvri/lire/fermer ce fichier toutes les secondes ( surtout s'il est volumineux )
Ce qui m'interesse c'est lire ligne par ligne ( non pas caractere par caractere, mais je peux adapter) , ca ressemble un peu à une fonction tail sous unix
une idée ?
Merci
Vincent
-- Pierre BOUSQUET
" Ne me dites pas que ce problème est difficile. S'il n'était pas difficile, ce ne serait pas un problème. "
b.engelmajer
sFic est une chaîne = "c:temptest.txt" nTaille est un entier = fTaille(sFic) nFic est un entier = fOuvre(sFic,foLecture) sLigne est une chaîne
// Méthode 1. Se baser sur la taille fPositionne(nFic,0,fpFin) BOUCLE SI nTaille <> fTaille(sFic) ALORS trace(fLitLigne(nFic)) nTaille = fTaille(sFic) FIN Multitâche(-100) FIN // Méthode 2. Se baser sur le renvoi de 'fin du fichier' => EOT (à mon avis , la bonne méthode) fPositionne(nFic,0,fpFin) BOUCLE sLigne = fLitLigne(nFic) SI sLigne <> EOT ALORS trace(sLigne) Multitâche(-100) FIN
sFic est une chaîne = "c:temptest.txt"
nTaille est un entier = fTaille(sFic)
nFic est un entier = fOuvre(sFic,foLecture)
sLigne est une chaîne
// Méthode 1. Se baser sur la taille
fPositionne(nFic,0,fpFin)
BOUCLE
SI nTaille <> fTaille(sFic) ALORS
trace(fLitLigne(nFic))
nTaille = fTaille(sFic)
FIN
Multitâche(-100)
FIN
// Méthode 2. Se baser sur le renvoi de 'fin du fichier' => EOT (à mon
avis , la bonne méthode)
fPositionne(nFic,0,fpFin)
BOUCLE
sLigne = fLitLigne(nFic)
SI sLigne <> EOT ALORS trace(sLigne)
Multitâche(-100)
FIN
sFic est une chaîne = "c:temptest.txt" nTaille est un entier = fTaille(sFic) nFic est un entier = fOuvre(sFic,foLecture) sLigne est une chaîne
// Méthode 1. Se baser sur la taille fPositionne(nFic,0,fpFin) BOUCLE SI nTaille <> fTaille(sFic) ALORS trace(fLitLigne(nFic)) nTaille = fTaille(sFic) FIN Multitâche(-100) FIN // Méthode 2. Se baser sur le renvoi de 'fin du fichier' => EOT (à mon avis , la bonne méthode) fPositionne(nFic,0,fpFin) BOUCLE sLigne = fLitLigne(nFic) SI sLigne <> EOT ALORS trace(sLigne) Multitâche(-100) FIN
patrice
"Vincent" a écrit dans le message de news:45d2cc96$0$5082$
Bonjour,
j'ai un programme qui écrit dans un fichier texte de log ( c'est un programme que je n'ai pas développé et j'ai pas les sources).
faut juste espérer qu'il ferme ou flush apres écriture sinon les nouvelles lignes ne sont pas dispo immédiatement
avec mon programme windev, j'aimerai lire chaque nouvelle ligne écrite
dans
ce fichier de façon continue. Est ce possible avec windev ? sans avoir à ouvri/lire/fermer ce fichier toutes les secondes ( surtout s'il est volumineux )
l'ouverture n'est pas dépendante de la taille (ne pas utiliser fchargetexte mais fouvre) il faut ouvrir le fichier régulièrement et mémoriser la taille renvoyer par fpositionne() pour savoir à partir de où continuer la lecture
"Vincent" <news@wwwww.com> a écrit dans le message de
news:45d2cc96$0$5082$ba4acef3@news.orange.fr...
Bonjour,
j'ai un programme qui écrit dans un fichier texte de log ( c'est un
programme que je n'ai pas développé et j'ai pas les sources).
faut juste espérer qu'il ferme ou flush apres écriture sinon les nouvelles
lignes ne sont pas dispo immédiatement
avec mon programme windev, j'aimerai lire chaque nouvelle ligne écrite
dans
ce fichier de façon continue.
Est ce possible avec windev ? sans avoir à ouvri/lire/fermer ce fichier
toutes les secondes ( surtout s'il est volumineux )
l'ouverture n'est pas dépendante de la taille (ne pas utiliser fchargetexte
mais fouvre)
il faut ouvrir le fichier régulièrement et mémoriser la taille renvoyer par
fpositionne() pour savoir à partir de où continuer la lecture
"Vincent" a écrit dans le message de news:45d2cc96$0$5082$
Bonjour,
j'ai un programme qui écrit dans un fichier texte de log ( c'est un programme que je n'ai pas développé et j'ai pas les sources).
faut juste espérer qu'il ferme ou flush apres écriture sinon les nouvelles lignes ne sont pas dispo immédiatement
avec mon programme windev, j'aimerai lire chaque nouvelle ligne écrite
dans
ce fichier de façon continue. Est ce possible avec windev ? sans avoir à ouvri/lire/fermer ce fichier toutes les secondes ( surtout s'il est volumineux )
l'ouverture n'est pas dépendante de la taille (ne pas utiliser fchargetexte mais fouvre) il faut ouvrir le fichier régulièrement et mémoriser la taille renvoyer par fpositionne() pour savoir à partir de où continuer la lecture