Ouvrir , lire un fichier, stocker ses données
Résolu/Fermé
Ablawa
Messages postés
15
Date d'inscription
lundi 23 juillet 2007
Statut
Membre
Dernière intervention
24 octobre 2007
-
9 oct. 2007 à 21:46
Ablawa Messages postés 15 Date d'inscription lundi 23 juillet 2007 Statut Membre Dernière intervention 24 octobre 2007 - 19 oct. 2007 à 16:37
Ablawa Messages postés 15 Date d'inscription lundi 23 juillet 2007 Statut Membre Dernière intervention 24 octobre 2007 - 19 oct. 2007 à 16:37
A voir également:
- Quel composant d’un ordinateur a pour rôle de stocker les données (système d’exploitation, applications, fichiers, etc.) ?
- Comment réinitialiser un ordinateur - Guide
- Restauration systeme - Guide
- Test composant pc - Guide
- Ordinateur qui rame - Guide
- Comment voir les composant de son pc - Guide
9 réponses
Salut,
Utilises plutot la fonction file() , tu n'auras pas besion des f_open etc>> et qui te met le fichier directement dans un array ligne par ligne
$array_fich=file("toto.prt");
Ensuite je suppose que tes colonnes sont separees par un caractere particulier "-" par exemple
alors il va falloir que tu expode chaque ligne par rapport a ce caractere
foreach($array_fich as $cle =>$value){
$array_ligne=explode("-",$value);
ensuite tu ne prend que les trois premiers de cet array (vas voir les fonctions array_...... sur Google)
et tu Implode ces trois avec ton separateur "-"
et tu les empile dans un array modifie
}
et ensuite tu ecris ce nouvel array modifie dans ton fichier toto-mod
Utilises plutot la fonction file() , tu n'auras pas besion des f_open etc>> et qui te met le fichier directement dans un array ligne par ligne
$array_fich=file("toto.prt");
Ensuite je suppose que tes colonnes sont separees par un caractere particulier "-" par exemple
alors il va falloir que tu expode chaque ligne par rapport a ce caractere
foreach($array_fich as $cle =>$value){
$array_ligne=explode("-",$value);
ensuite tu ne prend que les trois premiers de cet array (vas voir les fonctions array_...... sur Google)
et tu Implode ces trois avec ton separateur "-"
et tu les empile dans un array modifie
}
et ensuite tu ecris ce nouvel array modifie dans ton fichier toto-mod
Ablawa
Messages postés
15
Date d'inscription
lundi 23 juillet 2007
Statut
Membre
Dernière intervention
24 octobre 2007
10 oct. 2007 à 12:23
10 oct. 2007 à 12:23
Merci Alain42.
Mes colonnes sont séparées par "3".
J'avoue que c'est un peu fort pour moi mais je vais m'y mettre (c-à-d apprendre à utiliser "explode", "foreach" et "array").
A bientôt.
Mes colonnes sont séparées par "3".
J'avoue que c'est un peu fort pour moi mais je vais m'y mettre (c-à-d apprendre à utiliser "explode", "foreach" et "array").
A bientôt.
Salut,
je vais t'en donner un peu plus
et apres tu ecris ce nouvel array dans ton fichier modifie
je vais t'en donner un peu plus
$nouv_array_fich=array(); foreach($array_fich as $cle =>$value){ $array_ligne=explode("3",$value); $nouvelle_ligne=$array_ligne[0]."3".$array_ligne[1]."3".$array_ligne[2]; // on refait la ligne avec les 3 premieres col et le separateur $nouv_array_fich[]=$nouvelle_ligne; // on empile les lignes dans le nouvel array }
et apres tu ecris ce nouvel array dans ton fichier modifie
Ablawa
Messages postés
15
Date d'inscription
lundi 23 juillet 2007
Statut
Membre
Dernière intervention
24 octobre 2007
11 oct. 2007 à 13:36
11 oct. 2007 à 13:36
Merci Alain42 pour tout ce que tu as déjà fait pour moi.
Avec ton aide, voici ce que j'ai constitué (qui ne marche pas encore très bien car il écrit "array" dans mon nouveau fichier).
<?
$array_fich=file("toto.prt");
$nouv_array_fich=array();
foreach($array_fich as $value){
$array_ligne=explode("³",$value);
$nouvelle_ligne=$array_ligne[0]."³".$array_ligne[1]."³".$array_ligne[2]; // on refait la ligne avec les 3 premieres col et le separateur
$nouv_array_fich[]=$nouvelle_ligne; // on empile les lignes dans le nouvel array
}
//et apres on écrit ce nouvel array dans le fichier modifié.
$newfile = fopen("toto_mod.prt","w+");
//fputs($newfile,$nouv_array_fich[$nouvelle_ligne]);
fputs($newfile,$nouv_array_fich);
?>
Je sais que c'est trop te demandé mais je n'ai pas le choix car depuis des heures j'essaie mais en vain. STP Alain42.
Je veux même t'envoyer mon fichier "toto.prt" mais je ne sais comment le joindre.
Merci d'avance.
Avec ton aide, voici ce que j'ai constitué (qui ne marche pas encore très bien car il écrit "array" dans mon nouveau fichier).
<?
$array_fich=file("toto.prt");
$nouv_array_fich=array();
foreach($array_fich as $value){
$array_ligne=explode("³",$value);
$nouvelle_ligne=$array_ligne[0]."³".$array_ligne[1]."³".$array_ligne[2]; // on refait la ligne avec les 3 premieres col et le separateur
$nouv_array_fich[]=$nouvelle_ligne; // on empile les lignes dans le nouvel array
}
//et apres on écrit ce nouvel array dans le fichier modifié.
$newfile = fopen("toto_mod.prt","w+");
//fputs($newfile,$nouv_array_fich[$nouvelle_ligne]);
fputs($newfile,$nouv_array_fich);
?>
Je sais que c'est trop te demandé mais je n'ai pas le choix car depuis des heures j'essaie mais en vain. STP Alain42.
Je veux même t'envoyer mon fichier "toto.prt" mais je ne sais comment le joindre.
Merci d'avance.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Tu dois faire une boucle pour ecrire ligne par ligne l'array dans ton fichier:
je n'ai pas teste, je suis loin de chez moi (tres loin) Si erreur excuse par le decalage horaire et un clavier qwerty sur un Mac
//et apres on écrit ce nouvel array dans le fichier modifié. $newfile = fopen("toto_mod.prt","w+"); foreach($nouv_array_fich as $ligne){ fputs($newfile,$ligne); } fclose($newfile);
je n'ai pas teste, je suis loin de chez moi (tres loin) Si erreur excuse par le decalage horaire et un clavier qwerty sur un Mac
Ablawa
Messages postés
15
Date d'inscription
lundi 23 juillet 2007
Statut
Membre
Dernière intervention
24 octobre 2007
12 oct. 2007 à 14:43
12 oct. 2007 à 14:43
Merci Alain42. ça marche: j'ai sous forme de tableau, les colonnes que je veux avec le séparateur.
MAIS je dois revoir la mise en forme de mon nouveau fichier "toto_mod" car les lignes vides sont représentées par des séparateurs "³".
Mon fichier initial "toto" est ceci:
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
³ Service LISTE DES EMPLOYERS ³
³ Comptabilit, ³ Imprimée le 12/10/07 ³
³ ³
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
³ NOM ³ PRENOM ³ AGE ³ SALAIRE ³
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
³ Nom1 ³ Jean1 ³ 34 ³ 500000 ³
³ Nom2 ³ Jean2 ³ 28 ³ 300000 ³
³ Nom3 ³ Jean3 ³ 37 ³ 250000 ³
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Mon fichier final "toto_mod" est ceci:³³³
³³³
³ ³³
³ ³ Imprimée le 12/10/07 ³³
³ ³³
³³³
³³³
³³³
³³³
³³³
³ PRENOM ³ SALAIRE ³
³³³
³ Jean1 ³ 500000 ³
³ Jean2 ³ 300000 ³
³ Jean3 ³ 250000 ³
³³³
³³³
³³³
Voici le code final:
<?
$array_fich=file("toto.prt");
$nouv_array_fich=array();
foreach($array_fich as $value){
$array_ligne=explode("³",$value);
$nouvelle_ligne="³".$array_ligne[2]."³".$array_ligne[4].'³'."\n"; // on refait la ligne avec les collonnes 2 et 4 qui nous intéressent et le separateur '³'.
$nouv_array_fich[]=$nouvelle_ligne; // on empile les lignes dans le nouvel array.
//On fait une boucle pour ecrire ligne par ligne le nouvel array dans le fichier "toto_mod.prt"
$newfile = fopen("toto_mod.prt","w+");
foreach($nouv_array_fich as $nouvelle_ligne){
fputs($newfile,$nouvelle_ligne); //NOTE: LE RESULTAT EST BIEN SOUS FORME DE TABLEAU MAIS RESTE A REVOIR LA MISE EN FORME.
}
}
fclose($newfile);
?>
MAIS je dois revoir la mise en forme de mon nouveau fichier "toto_mod" car les lignes vides sont représentées par des séparateurs "³".
Mon fichier initial "toto" est ceci:
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
³ Service LISTE DES EMPLOYERS ³
³ Comptabilit, ³ Imprimée le 12/10/07 ³
³ ³
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
³ NOM ³ PRENOM ³ AGE ³ SALAIRE ³
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
³ Nom1 ³ Jean1 ³ 34 ³ 500000 ³
³ Nom2 ³ Jean2 ³ 28 ³ 300000 ³
³ Nom3 ³ Jean3 ³ 37 ³ 250000 ³
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Mon fichier final "toto_mod" est ceci:³³³
³³³
³ ³³
³ ³ Imprimée le 12/10/07 ³³
³ ³³
³³³
³³³
³³³
³³³
³³³
³ PRENOM ³ SALAIRE ³
³³³
³ Jean1 ³ 500000 ³
³ Jean2 ³ 300000 ³
³ Jean3 ³ 250000 ³
³³³
³³³
³³³
Voici le code final:
<?
$array_fich=file("toto.prt");
$nouv_array_fich=array();
foreach($array_fich as $value){
$array_ligne=explode("³",$value);
$nouvelle_ligne="³".$array_ligne[2]."³".$array_ligne[4].'³'."\n"; // on refait la ligne avec les collonnes 2 et 4 qui nous intéressent et le separateur '³'.
$nouv_array_fich[]=$nouvelle_ligne; // on empile les lignes dans le nouvel array.
//On fait une boucle pour ecrire ligne par ligne le nouvel array dans le fichier "toto_mod.prt"
$newfile = fopen("toto_mod.prt","w+");
foreach($nouv_array_fich as $nouvelle_ligne){
fputs($newfile,$nouvelle_ligne); //NOTE: LE RESULTAT EST BIEN SOUS FORME DE TABLEAU MAIS RESTE A REVOIR LA MISE EN FORME.
}
}
fclose($newfile);
?>
Alors il faut tester et supprimer les lignes vides
attention tu avais une ] pas au bon endroit il me semble, mais je n'ai pas d'editeur pour bien voir
<? $array_fich=file("toto.prt"); $nouv_array_fich=array(); foreach($array_fich as $value){ $array_ligne=explode("³",$value); if($array_ligne[2]!=""){ // si la colonne 3 n'est pas vide par exemple $nouvelle_ligne="³".$array_ligne[2]."³".$array_ligne[4].'³'."\n"; // on refait la ligne avec les collonnes 2 et 4 qui nous intéressent et le separateur '³'. $nouv_array_fich[]=$nouvelle_ligne; // on empile les lignes dans le nouvel array. } //On fait une boucle pour ecrire ligne par ligne le nouvel array dans le fichier "toto_mod.prt" $newfile = fopen("toto_mod.prt","w+"); foreach($nouv_array_fich as $nouvelle_ligne){ fputs($newfile,$nouvelle_ligne); //NOTE: LE RESULTAT EST BIEN SOUS FORME DE TABLEAU MAIS RESTE A REVOIR LA MISE EN FORME. } fclose($newfile); ?>
attention tu avais une ] pas au bon endroit il me semble, mais je n'ai pas d'editeur pour bien voir
En complement a mon post precedent,
Attention il faut que tu refermes ta boucle foreach de generation de array }
avant ta boucle foreach d'ecriture de l'array dans le fichier mod
dans ton code tu as les deux }} a la fin alors tu ecris dans le fichier mod a chaque passage de la premiere boucle ce qui n'est pas bon.
Ensuite un conseil utilises les tags <?php ?> au lieu des shorts tags <? ?> cela t'evitera bien des deboires si tu passes un jour en php5
@lain
Attention il faut que tu refermes ta boucle foreach de generation de array }
avant ta boucle foreach d'ecriture de l'array dans le fichier mod
dans ton code tu as les deux }} a la fin alors tu ecris dans le fichier mod a chaque passage de la premiere boucle ce qui n'est pas bon.
Ensuite un conseil utilises les tags <?php ?> au lieu des shorts tags <? ?> cela t'evitera bien des deboires si tu passes un jour en php5
@lain
Ablawa
Messages postés
15
Date d'inscription
lundi 23 juillet 2007
Statut
Membre
Dernière intervention
24 octobre 2007
19 oct. 2007 à 16:37
19 oct. 2007 à 16:37
Slt Alain42.
J'avais eu un peu de contre temps.
Je tiens à te remercier pour ton apport à la résolution de mon problème.
J'avais eu un peu de contre temps.
Je tiens à te remercier pour ton apport à la résolution de mon problème.