Je souhaiterais =E9crire dans un fichier texte mais pas de=20
la mani=E8re habituelle, =E0 savoir les lignes se rajoutent en=20
fin de fichier (m=E9thode append)
Ce que je voudrais c'est que lorsque j'=E9cris une ligne=20
dans mon fichier, elle s'ins=E8re chaque fois avant la=20
premi=E8re ligne du fichier.
Bien sur il y a la m=E9thode 'lourde' qui consiste =E0 copier=20
en temporaire le contenu du fichier, mettre la nouvelle=20
ligne dans le fichier, puis ajouter le temporaire =E0 la=20
suite, mais bon c'est un poil 'lourd'
Donc si vous connaissez un autre moyen bcp plus simple ...
Pour lire à un endroit donné: ========================= ====
Get #NumFich, NumeroLigne, ValeurEnregistrement
Pour insérer: =============
Put #NumFich, NumeroLigne, ValeurEnregistrement
En générale on utilise ces 2 méthodes avec l'ouverture d'un fichier en mode "For Random" ;)
en espérant que ca peut t'aider !!
-----Message d'origine----- Bonjour,
Je souhaiterais écrire dans un fichier texte mais pas de la manière habituelle, à savoir les lignes se rajoutent
en
fin de fichier (méthode append)
Ce que je voudrais c'est que lorsque j'écris une ligne dans mon fichier, elle s'insère chaque fois avant la première ligne du fichier.
Bien sur il y a la méthode 'lourde' qui consiste à
copier
en temporaire le contenu du fichier, mettre la nouvelle ligne dans le fichier, puis ajouter le temporaire à la suite, mais bon c'est un poil 'lourd'
Donc si vous connaissez un autre moyen bcp plus
simple ...
Merci d'avance
Nicolas .
Jean-Marc
"HECHT Franck" a écrit dans le message de news:08bf01c3c40d$1039aca0$
Salut, Oui y'a une methode beaucoup plus simple: Pour lire à un endroit donné: ============================ >Get #NumFich, NumeroLigne, ValeurEnregistrement Pour insérer: ============ >Put #NumFich, NumeroLigne, ValeurEnregistrement En générale on utilise ces 2 méthodes avec l'ouverture d'un fichier en mode "For Random" ;)
Hello,
Hello,
Je crois que ce n'est pas ce que souhaite faire Nicolas.Avec Get# et Put#, tu peux Lire/Ecrire des records à une position donnée, mais ça ne règle pas son problème de faire des ajouts en tête de fichier, avec décalage du reste vers le bas.
A ma connaissance, il n'y a pas de moyen simple de faire ça en VB. Si je devais implémenter qq chose comme ça, j'envisagerai 2 façons de faire:
A. J'ecris normalement mes lignes en fin de fichier (append) et je laisse le programme (si c'est bien un programme) qui exploite ce fichier se débrouiller avec ça, pour présenter à l'utilisateur ou au process suivant le fichier "à l'envers".
B. Si ce n'est pas un programme qui exploite le fichier, et si la contrainte "ecrire les données les plus récentes en début de fichier" est très forte, alors pas d'autre moyen à mon avis que de faire comme le suggère Nicolas dans son post initial: fichier temporaire, etc.
Peut être qu'une explication plus détaillé du problème, ou un exemple, permettrait de donner une meilleure réponse ou de présenter une alternative.
Jean-Marc
"HECHT Franck" <eclypse.hf@wanadoo.fr> a écrit dans le message de
news:08bf01c3c40d$1039aca0$a001280a@phx.gbl...
Salut,
Oui y'a une methode beaucoup plus simple:
Pour lire à un endroit donné:
============================ >Get #NumFich, NumeroLigne, ValeurEnregistrement
Pour insérer:
============ >Put #NumFich, NumeroLigne, ValeurEnregistrement
En générale on utilise ces 2 méthodes avec l'ouverture
d'un fichier en mode "For Random" ;)
Hello,
Hello,
Je crois que ce n'est pas ce que souhaite faire Nicolas.Avec Get# et Put#,
tu
peux Lire/Ecrire des records à une position donnée, mais ça ne règle pas
son problème de faire des ajouts en tête de fichier, avec décalage du
reste
vers le bas.
A ma connaissance, il n'y a pas de moyen simple de faire ça en VB.
Si je devais implémenter qq chose comme ça, j'envisagerai 2 façons de
faire:
A. J'ecris normalement mes lignes en fin de fichier (append) et je laisse
le
programme (si c'est bien un programme) qui exploite ce fichier se
débrouiller avec ça, pour présenter à l'utilisateur ou au process suivant
le fichier "à l'envers".
B. Si ce n'est pas un programme qui exploite le fichier, et si la
contrainte "ecrire les données les plus récentes en début de fichier"
est très forte, alors pas d'autre moyen à mon avis que de faire comme
le suggère Nicolas dans son post initial: fichier temporaire, etc.
Peut être qu'une explication plus détaillé du problème, ou un exemple,
permettrait de donner une meilleure réponse ou de présenter une alternative.
"HECHT Franck" a écrit dans le message de news:08bf01c3c40d$1039aca0$
Salut, Oui y'a une methode beaucoup plus simple: Pour lire à un endroit donné: ============================ >Get #NumFich, NumeroLigne, ValeurEnregistrement Pour insérer: ============ >Put #NumFich, NumeroLigne, ValeurEnregistrement En générale on utilise ces 2 méthodes avec l'ouverture d'un fichier en mode "For Random" ;)
Hello,
Hello,
Je crois que ce n'est pas ce que souhaite faire Nicolas.Avec Get# et Put#, tu peux Lire/Ecrire des records à une position donnée, mais ça ne règle pas son problème de faire des ajouts en tête de fichier, avec décalage du reste vers le bas.
A ma connaissance, il n'y a pas de moyen simple de faire ça en VB. Si je devais implémenter qq chose comme ça, j'envisagerai 2 façons de faire:
A. J'ecris normalement mes lignes en fin de fichier (append) et je laisse le programme (si c'est bien un programme) qui exploite ce fichier se débrouiller avec ça, pour présenter à l'utilisateur ou au process suivant le fichier "à l'envers".
B. Si ce n'est pas un programme qui exploite le fichier, et si la contrainte "ecrire les données les plus récentes en début de fichier" est très forte, alors pas d'autre moyen à mon avis que de faire comme le suggère Nicolas dans son post initial: fichier temporaire, etc.
Peut être qu'une explication plus détaillé du problème, ou un exemple, permettrait de donner une meilleure réponse ou de présenter une alternative.
Jean-Marc
Nicolas
Effectivement Jean-Marc, tu as complètement raison, c'est bien de ce procédé dont je parlais.
J'ai, comme tu l'as si bien mentionné, la contrainte "ecrire les données les plus récentes en début de fichier"
Exemple :
Fichier au temps t=0
Blablabla
Fichier au temps t=1
Toto Blabla
Fichier au temps t=2
Titi Toto Blabla
etc etc
Merci en tous les cas de vos réponses et suggestions.
Nicolas
Effectivement Jean-Marc, tu as complètement raison, c'est
bien de ce procédé dont je parlais.
J'ai, comme tu l'as si bien mentionné, la
contrainte "ecrire les données les plus récentes en début
de fichier"
Exemple :
Fichier au temps t=0
Blablabla
Fichier au temps t=1
Toto
Blabla
Fichier au temps t=2
Titi
Toto
Blabla
etc etc
Merci en tous les cas de vos réponses et suggestions.