OVH Cloud OVH Cloud

Ecriture dans un fichier texte

3 réponses
Avatar
Nicolas
Bonjour,

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 ...

Merci d'avance

Nicolas

3 réponses

Avatar
HECHT Franck
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" ;)

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
.



Avatar
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
Avatar
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