Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1776 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [résolu] suppression d'une ligne dans un fichier txt

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[résolu] suppression d'une ligne dans un fichier txt

n°1584190
jereln
..elle est pas belle la vie...
Posté le 09-07-2007 à 18:03:35  profilanswer
 

Bonjour, j'ai un fichier txt avec des données.
Je voudrais savoir comment supprimer une ligne (avec un code php )qui contient une donnée précisée dans un formulaire.
 
Merci de votre aide.

Message cité 1 fois
Message édité par jereln le 17-07-2007 à 18:50:58

---------------
N'oubliez pas : je suis débutante en php et access !!! Merci.
mood
Publicité
Posté le 09-07-2007 à 18:03:35  profilanswer
 

n°1584220
bixibu
Ca ... c'est fait!
Posté le 09-07-2007 à 19:38:34  profilanswer
 

fonctions à utiliser :
fopen fread feof fgets fclose
 
doc pour les utiliser :  
http://fr.php.net/
 
sinon tu cherche un script tout fait :
http://www.google.fr/search?source [...] ogle&meta=

n°1584243
olivthill
Posté le 09-07-2007 à 21:00:18  profilanswer
 

Il est nécessaire de réécrire tout le fichier sauf la ligne à supprimer. Il n'y a pas d'autre moyen.

n°1585319
jereln
..elle est pas belle la vie...
Posté le 11-07-2007 à 16:35:15  profilanswer
 

Citation :

Il est nécessaire de réécrire tout le fichier sauf la ligne à supprimer. Il n'y a pas d'autre moyen.


 
et concrètement, je fais comment?


---------------
N'oubliez pas : je suis débutante en php et access !!! Merci.
n°1585367
rengzehn
Posté le 11-07-2007 à 17:45:24  profilanswer
 

$fich_in=fopen('ton_fichier',r); // ouvre ton fichier et place le curseur au début
$fich_out=fopen('fichier_nettoyé',w+); // tu vas sauvegarder dedans
while(! feof($fich_in)) { // tant que le curseur est pas à la fin du fichier
$ligne_en_cours=fgets($fich_in,1024); // lit la ligne ou est le curseur et avance le curseur
if(! strpos($ligne_en_cours,'chaine_recherchée') { // si la ligne ne contient pas la chaine que tu cherches
fwrite($fich_out,$ligne_en_cours); // alors elle est placée dans le fichier de sauvegarde
}
}
fclose($fichier_in); fclose($fichier_out);

 

si tu le souhaites, tu écrases le fichier in avec celui que tu as crée. Pas testé mais c'est de cet ordre...

 



Message édité par rengzehn le 11-07-2007 à 17:46:19
n°1585547
jereln
..elle est pas belle la vie...
Posté le 12-07-2007 à 09:27:24  profilanswer
 

merci rengzehn, je vais tester ça et je te tiens au courant.


---------------
N'oubliez pas : je suis débutante en php et access !!! Merci.
n°1585550
rufo
Pas me confondre avec Lycos!
Posté le 12-07-2007 à 09:30:31  profilanswer
 

Sinon, en plus court, mais marche que pour php5 (à cause de file_put_contents) :  

Code :
  1. $ArrayContent = file("ton_fichier" );
  2. unset($ArrayContent[NumLighneASupprimer]);
  3. file_put_contents("ton_fichier", implode('', $ArrayContent));


 
ps : je ne suis pas sûr que le implode soit nécessaire...

n°1585606
rengzehn
Posté le 12-07-2007 à 10:30:02  profilanswer
 

Je suis pas sur que le numligne soit connu, faut le chercher et parcourir le fichier, de plus si le fichier fait 200 megs, le mettre en array, bof ^^

n°1585615
jereln
..elle est pas belle la vie...
Posté le 12-07-2007 à 10:40:15  profilanswer
 

le numligne n'est pas connu, en fait il s'agit d'un mot poster par le biais d'un formulaire


---------------
N'oubliez pas : je suis débutante en php et access !!! Merci.
n°1585618
rengzehn
Posté le 12-07-2007 à 10:42:34  profilanswer
 

bhen utilise plutot ce que bixibu disait : les instruct. de base sur la gestion des fichiers ça sera instructif ;p

mood
Publicité
Posté le 12-07-2007 à 10:42:34  profilanswer
 

n°1585644
rufo
Pas me confondre avec Lycos!
Posté le 12-07-2007 à 11:20:45  profilanswer
 

rengzehn a écrit :

Je suis pas sur que le numligne soit connu, faut le chercher et parcourir le fichier, de plus si le fichier fait 200 megs, le mettre en array, bof ^^


 
Effectivement. En même temps, un fichier txt de 200 Mo, faut y aller quand même. Si t'arrives à cette extrêmité, je pense qu'il vaudrait mieux sérieusement envisager une base de données et rechercher via SQL. Ca ira vraiment plus vite ;)

n°1585650
rengzehn
Posté le 12-07-2007 à 11:27:13  profilanswer
 

rufo a écrit :

Effectivement. En même temps, un fichier txt de 200 Mo, faut y aller quand même. Si t'arrives à cette extrêmité, je pense qu'il vaudrait mieux sérieusement envisager une base de données et rechercher via SQL. Ca ira vraiment plus vite ;)


 
je travaille réguilierement sur du txt de > 500 megs qui ne peux pas être intégré à un sgbd, et je dois pas être le seul :D

n°1585763
rufo
Pas me confondre avec Lycos!
Posté le 12-07-2007 à 13:45:51  profilanswer
 

par curiosité, ces txt > 500 Mo, ils contiennent quel genre de données?  :ouch:

n°1585823
rengzehn
Posté le 12-07-2007 à 15:47:28  profilanswer
 

des fichiers d'echange entre des sig propriétaires anciens. des fichiers postscripts. un client qui m'exporte toute sa bdd regulierement pour que je l'integre à notre sgbdr, il n'a qu'un systeme d'export et toutes les tables sont dans un seul fichier et les enregistrements sont melangés donc fichier dont les champs sont non délimité puisqu'il y a des champs différents sur chaque ligne. Faut le passer à travers des cat/grep avant :) c'est la qu'on voit toute le puissance d'un shell ;p l'insee qui nous a filé des gigas de données en txt, des dizaine de milliers de colonnes de variables ou on doit tout remonter dans un sgbdr en recollant les fichiers txt. ça parrait gros mais quelque scripts et c'est les bécannes qui bossent.

n°1585831
anapajari
s/travail/glanding on hfr/gs;
Posté le 12-07-2007 à 15:52:12  profilanswer
 

AMHA, faire ça sur des fichiers aussi gros en php relève de la pure inepsie.
T'utiliserais du perl ça irait trente fois plus vite :o
 
pour rappel: PERL = Practical Extraction and Report Language et c'est typiquement fait pour ce genre de tache.

n°1585983
rengzehn
Posté le 12-07-2007 à 20:29:50  profilanswer
 

anapajari a écrit :

AMHA, faire ça sur des fichiers aussi gros en php relève de la pure inepsie.
T'utiliserais du perl ça irait trente fois plus vite :o
 
pour rappel: PERL = Practical Extraction and Report Language et c'est typiquement fait pour ce genre de tache.


 
Tu parles à qui ? si c'est à moi, bien sur que je manipule pas ces fichiers avec php, je vois pas ou tu as lu ça :)

n°1586043
anapajari
s/travail/glanding on hfr/gs;
Posté le 13-07-2007 à 08:49:19  profilanswer
 

rengzehn a écrit :

Tu parles à qui ? si c'est à moi, bien sur que je manipule pas ces fichiers avec php, je vois pas ou tu as lu ça :)


[:cupra] c'est vrai qu'a aucun moment tu ne précises... Mais comme on était sur un topic php, j'ai un peu vite fait l'assimilation :à:

n°1586173
kyodenball
Posté le 13-07-2007 à 13:52:22  profilanswer
 

jereln a écrit :

Bonjour, j'ai un fichier txt avec des données.
Je voudrais savoir comment supprimer une ligne (avec un code php )qui contient une donnée précisée dans un formulaire.
 
Merci de votre aide.


 
 :pt1cable: il l'a bien précisé dans son premier poste  :D  

n°1586182
kao98
...
Posté le 13-07-2007 à 14:00:24  profilanswer
 

Nan mais c'est pas le même ! Celui qui a besoin de modifier des fichiers en PHP n'est pas celui qui récupère des fichiers de 500Mo !


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
n°1587814
jereln
..elle est pas belle la vie...
Posté le 17-07-2007 à 18:34:10  profilanswer
 

J'ai testé le script de rengzehn, mais le if pose problème avec le while.
J'ai le message suivant :
Parse error: syntax error, unexpected '{' in ...
 


---------------
N'oubliez pas : je suis débutante en php et access !!! Merci.
n°1587815
rufo
Pas me confondre avec Lycos!
Posté le 17-07-2007 à 18:43:17  profilanswer
 

if(! strpos($ligne_en_cours,'chaine_recherchée') {
 
il manque une )
-> if(! strpos($ligne_en_cours,'chaine_recherchée')) {

n°1587819
jereln
..elle est pas belle la vie...
Posté le 17-07-2007 à 18:50:35  profilanswer
 

merci rufo, j'ai regardé pendant un moment, mais je suis passée dessus!
 
ça marche : cool
 
Merci à tous


---------------
N'oubliez pas : je suis débutante en php et access !!! Merci.
n°1587832
Mara's dad
Yes I can !
Posté le 17-07-2007 à 19:31:31  profilanswer
 

8 Jours et 21 posts pour ca  :lol:

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [résolu] suppression d'une ligne dans un fichier txt

 

Sujets relatifs
droit à un fichierImpossible d'écrire un fichier texte dans un répertoire sur FTP.
[VBA/EXCEL] Ligne ignorée dans la macroSQL Server : fichier log
[Résolu] Importer un fichier .xsl dans une BDD[AS3] getChildAt at addChild [RESOLU]
[SQL Server][Gestion de fichier] Ouvrir lire créer un fichier via SQL?LibCurl [Résolu]
Scritp FTP qui lit un fichier . 
Plus de sujets relatifs à : [résolu] suppression d'une ligne dans un fichier txt


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR