Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/12/2007, 19h18   #1
Futur Membre du Club
 
Inscription : avril 2007
Messages : 30
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 30
Points : 15
Points : 15
Par défaut ajout d'une donnée dans un fichier texte

Bonjour,

j'ai un fichier texte dont voici un exemple :

A;1,2,5,6
B;6,9,8
C;3,2,1
D;4,3,5
...

Mon soucis est que je veux ajouter 1 juste après le 8 de la ligne B;6,9,8
pour avoir donc une ligne : B;6,9,8,1.

J'y suis presque sauf que mon résultat est le suivant :

A;1,2,5,6
B;6,9,8
,1C;3,2,1
D;4,3,5
...

Le 1 vient se mettre devant le C du coup je perds la ligne C et c'est le boxon...

voici mon code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
 
$numero=1;
$lettre_recherchee="B";
$nom_fichier="lettres.txt";
$tabLignes=file($nom_fichier);
 
$contenu="";
 
foreach($tabLignes as $index=>$ligne){
 
$tab=split(";",$ligne);
$lettre=$tab[0];//Récupère la lettre de la ligne.
$listeNumeros=explode(',',$tab[1]);//Récupère les numéros de la ligne.
 
if($lettre==$lettre_recherchee){
	if(!in_array($numero,$listeNumeros)){
	   array_push($listeNumeros,$numero); 
	}
}
 
 $contenu.=$lettre.';'.implode(",",$listeNumeros);
 
}
 
file_put_contents($nom_fichier,$contenu);
Pourriez-vous me donner un coup de main je deviens fou...
sorenson2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2007, 12h00   #2
Membre éclairé
 
Avatar de alceste
 
Inscription : mars 2006
Messages : 318
Détails du profil
Informations personnelles :
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : mars 2006
Messages : 318
Points : 320
Points : 320
c'est parce qu'après le 8 y'a un retour à la ligne "\n" et donc tu ne le mets pas directement après le 8 mais après ce retour, du coup ton ',1' se retrouve à la ligne, il faudrait le placer entre le 8 et le retour.
alceste est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2007, 12h41   #3
Futur Membre du Club
 
Inscription : avril 2007
Messages : 30
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 30
Points : 15
Points : 15
Merci du tuyau !

Ca fonctionne, j'ai ajouté un trim sur la ligne

Code :
$tab=split(";",trim($ligne));
Ce qui doit supprimer le retour à la ligne de la ligne courante et donc effectivement ça marche beaucoup mieux ! Grand merci.
sorenson2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h41.


 
 
 
 
Partenaires

Hébergement Web