écrire au milieu d'un fichier

Résolu
cs_Jordan59 Messages postés 174 Date d'inscription vendredi 26 mai 2006 Statut Membre Dernière intervention 9 avril 2014 - 30 déc. 2009 à 18:23
cs_Jordan59 Messages postés 174 Date d'inscription vendredi 26 mai 2006 Statut Membre Dernière intervention 9 avril 2014 - 4 janv. 2010 à 15:40
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

JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 18 novembre 2010 14
30 déc. 2009 à 20:47
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 ?
3
Utilisateur anonyme
30 déc. 2009 à 22:10
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
3
JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 18 novembre 2010 14
30 déc. 2009 à 19:28
Bien sur
Et si le fichier a un nombre impair de lignes, tu ecris avant ou apres le milieu ? ^^
0
cs_Jordan59 Messages postés 174 Date d'inscription vendredi 26 mai 2006 Statut Membre Dernière intervention 9 avril 2014 7
30 déc. 2009 à 20:22
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 !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Jordan59 Messages postés 174 Date d'inscription vendredi 26 mai 2006 Statut Membre Dernière intervention 9 avril 2014 7
4 janv. 2010 à 15:40
Ok, merci !
0
Rejoignez-nous