Ouvrir un fichier, aller a une ligne précise ?

Atomos83 Messages postés 33 Date d'inscription mercredi 23 février 2005 Statut Membre Dernière intervention 10 novembre 2006 - 20 sept. 2006 à 10:48
jediNoobiewan Messages postés 67 Date d'inscription mardi 25 janvier 2005 Statut Membre Dernière intervention 20 octobre 2010 - 20 sept. 2006 à 11:29
Bonjou :)
Alors voila mon problème, j'aimerais ouvrir un fichier txt et y ajouter un bloc de texte à un endroit précis !

Je m'explique, j'ai besoin d'inserer un bloc de texte à 5 ligne avant la fin du fichier et ce, quelque soit le nombre de ligne qu'il y à !
Par exemple :

1 bla
2 bla
3 bla
4 ...
...
...
25 -> Donnés a inserrer
...
...

Voila, en esperant être clair, si quelqu'un peut m'aider un peu a démarrer, je bute complet

Merci !
30 bla

5 réponses

jediNoobiewan Messages postés 67 Date d'inscription mardi 25 janvier 2005 Statut Membre Dernière intervention 20 octobre 2010
20 sept. 2006 à 11:00
Hello,


Si ton fichier n'est pas trop important, tu peux utiliser la fonction
file() qui te renvoi un tableau qui contiens les lignes de ton fichiers
: 1 éléments du tableau = 1 ligne.


Il te suffit ensuite de rajouter tes lignes dans le tableau et de le réécrire dans le fichier.


Voilou =) si t'en veux plus t'as qu'à demander
0
Atomos83 Messages postés 33 Date d'inscription mercredi 23 février 2005 Statut Membre Dernière intervention 10 novembre 2006
20 sept. 2006 à 11:08
Ok pas mal cette fonction je vais essayer un truc du genre

i=1;
Tant que l'on est pas a la fin du fichier
{
    i++;
}
// A ce stade j'ai donc le num de la derniere ligne

fichier[i-5] ="blablabla"

Le probleme étant que je vais écraser la ligne i-5 actuelle !?
Il faudrais dabord, a la fin de la ligne i-5 actuelle sauter une ligne avant d'ecrire les nouvelle données !

Tu voit comment faire ?
0
jediNoobiewan Messages postés 67 Date d'inscription mardi 25 janvier 2005 Statut Membre Dernière intervention 20 octobre 2010
20 sept. 2006 à 11:18
$indiceAjout = 24;

$ficEnTab = file($nomFic);

$nbLignes = count($ficEnTab);


$debut = array_slice($ficEnTab, 0, ($indiceAjout - 1));

$fin = array_slice($ficEnTab, $indiceAjout, $nbLignes);


$tabAAjouter = array("Ligne 1", "Ligne 2", "Ligne 3");


$nouveauTab = array_merge($debut, $tabAAjouter, $fin);


$chaine = implode("\n", $nouveauTab);


$fic = fopen($nomFic, "w");

fwrite($fic, $chaine);

fclose($fic);


Voilou aux quelques fautes d'indice de \n en fin de ligne et if() près =)
0
Atomos83 Messages postés 33 Date d'inscription mercredi 23 février 2005 Statut Membre Dernière intervention 10 novembre 2006
20 sept. 2006 à 11:24
Je vais décrypter ton code :)
Merci a toi !
0

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

Posez votre question
jediNoobiewan Messages postés 67 Date d'inscription mardi 25 janvier 2005 Statut Membre Dernière intervention 20 octobre 2010
20 sept. 2006 à 11:29
C'est vrai que kelkes commentaires auraient pu aider ^^
0
Rejoignez-nous