Ajouter une ligne au début d'un fichier txt

cs_hdh Messages postés 140 Date d'inscription mardi 3 juin 2003 Statut Membre Dernière intervention 20 août 2012 - 25 août 2011 à 14:35
cs_hdh Messages postés 140 Date d'inscription mardi 3 juin 2003 Statut Membre Dernière intervention 20 août 2012 - 29 août 2011 à 00:50
Bonjour,
Je me heurte à une difficulté : je voudrais ajouter en haut d'un fichier une ligne supplémentaire (je veux ajouter une ligne d'entête à un fichier csv).
fyi : le fichier dans lequel je dois ajouter une ligne est très lourd (100mo).
Mes essais sont pas probants du tout :-/
Au choix
- cela place le curseur en bas de fichier et écrit au fond de mon fichier (au lieu de la 1° ligne)
- cela vide mon fichier (on se retrouve avec mon entête... mais sans les data)
- cela efface et remplace la 1° ligne


$FEQ = fopen('fichier.csv', 'r+');
fputs($FEQ,$LigneARajouter);
fclose($FEQ);


Bref je suis un garçon désespéré !
Zauriez des pistes de reflexion, ou méthode de contournement pour cette problématique??
Au plaisir de vous lire !
H

le temps n'épargne pas ce que l'ont fait sans lui.. le php non plus

2 réponses

JulSoft Messages postés 354 Date d'inscription dimanche 3 juin 2001 Statut Membre Dernière intervention 11 mars 2013
27 août 2011 à 14:21
Une idée moche... Mais c'est tout ce qui me vient en tête:

Tu crées un nouveau fichier qui contient uniquement ta première ligne.
Ensuite, tu écris dans ce même nouveau fichier, ligne par ligne, le contenu de ton fichier de départ.

Finalement, tu supprimes le fichier original et tu renomes l'ancien.

Pas super efficace, on est d'accord, mais au moin tu limites un peu l'utilisation en RAM (pas de stockage de ton fichier entier).
0
cs_hdh Messages postés 140 Date d'inscription mardi 3 juin 2003 Statut Membre Dernière intervention 20 août 2012
29 août 2011 à 00:50
yeah c'est une idée; je vais regarder s'il n'y a pas aussi une fonction de merge de fichier :-)
z'vous tient au courant !!
H


le temps n'épargne pas ce que l'ont fait sans lui.. le php non plus
0
Rejoignez-nous