écrire au milieu d'un fichier [Résolu]

Signaler
Messages postés
174
Date d'inscription
vendredi 26 mai 2006
Statut
Membre
Dernière intervention
9 avril 2014
-
cs_Jordan59
Messages postés
174
Date d'inscription
vendredi 26 mai 2006
Statut
Membre
Dernière intervention
9 avril 2014
-
Bonsoir tout le monde,

Je cherche à écrire une ligne en plein milieu d'un fichier texte et je n'y parviens pas. Est-il réellement possible de le faire ?

Merci par avance pour votre aide !

5 réponses

Messages postés
2226
Date d'inscription
dimanche 5 octobre 2003
Statut
Modérateur
Dernière intervention
18 novembre 2010
13
Tu utilises une TStringList (http://www.delphibasics.co.uk/RTL.asp?Name=TStringList)
Exemple (non testé, juste de tete, je ne cree rien, verifie rien, rapide quoi ^^)
:
MaStringList.LoadFromFile('fichier.txt');
MaStringList.Insert('Magasin 01', 50); // insere ce texte à la ligne 50, et décale donc toutes les prochaines
(là je ne suis plus sur du Insert('', 0); ou Insert(0, ''); vois tu ?
MaStringList.SaveToFile('Magasin01.txt');
Ensuite, pour trouver la bonne ligne, as tu ton idée ? Le nombre de données communes est-il fixe ?

Salut,

Une autre méthode que celle de Julio, les streams :

1)Tu crée un TFilStream en mode OpenRead
2)Tu crée un TFileStream en mode OpenWrite
3)Tu copies la premiere partie de ton fichier dans le second stream
4)Tu ajoutes les données que tu souhaites insérer, dans ce dernier
5)Tu copies le reste des données de ton Stream de lecture.
6)Tu libères le tout
Messages postés
2226
Date d'inscription
dimanche 5 octobre 2003
Statut
Modérateur
Dernière intervention
18 novembre 2010
13
Bien sur
Et si le fichier a un nombre impair de lignes, tu ecris avant ou apres le milieu ? ^^
Messages postés
174
Date d'inscription
vendredi 26 mai 2006
Statut
Membre
Dernière intervention
9 avril 2014
3
Non pas exactement au milieu. A un endroit précis que je compte repérer par une chaîne <CodeMagasin> par exemple et à la place y mettre le code de mon magasin.

En fait dans le cadre de mon boulot, je doit générer des fichiers avec diverses données de ventes, des produits, des fournisseurs, ... Un fichier par magasin.

Or beaucoup de données se trouvant au début du fichier sont communes.

Je crée donc un fichier temporaire que je vais copier puis renommer pour chaque magasin et écrire à la suite les données spécifiques au magasin.

Le problème est que je dois préciser le code du magasin dans une des lignes du début de mon fichier (petite nouveauté que je viens d'apprendre)

D'où ma question !

Comme puis-je procéder ?

Merci !
Messages postés
174
Date d'inscription
vendredi 26 mai 2006
Statut
Membre
Dernière intervention
9 avril 2014
3
Ok, merci !