IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

suppression d'une ligne d'un fichier texte suite à une recherche de caractère


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4
    Points : 1
    Points
    1
    Par défaut suppression d'une ligne d'un fichier texte suite à une recherche de caractère
    Bonjour à tous et toutes,

    voilà j'zai un fichier texte et je voudrais pouvoir supprimer toutes les lignes comportant le caractère '£'. chacunes de ces lignes est séparée par un retour chariot. J'étais parti sur la focntion ereg mais sans y parvenir. voici mon code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    <?php
    //chargement des variables de connexion à la base de données ...
    @ini_set('max_execution_time',0);
    @ini_set('memor_limit','100M');
     
    //définition des variables de travail
    $repertoire=".";
    $nomfich="ecritures";
    $fichdep=$nomfich.".txt";
    $fichnew=$nomfich."_modif.txt";
     
    	//on supprime le résulat d'un traitement antérieur
    	if(file_exists ($fichnew))
    		unlink($fichnew);
     
    	if(file_exists ($fichdep))
    	{
    		$count=0;
    		$fd = fopen ($fichdep, "r"); 
    	  	$fichier=fopen($fichnew,"a+");   
       		while (!feof ($fd))
        		{ 
    			$buffer = fgets($fd, 4096); 
    			if(strpos($buffer,",")>0)
    	  		{
    				/*pour chacune des lignes*/
    				if (ereg("£",$ligntemp));
    				{$ligntemp="";}
    				else
    				//on ecrit un M en début de ligne
    				{$ligntemp='M'.substr($buffer,1);								
    				//on remplace le caractère G par 000				
    				$ligntemp=substr($ligntemp,0,11).'000'.substr($ligntemp,14);	
    				//on supprime la , pour avoir les montants en centimes
    				$ligntemp=substr($ligntemp,0,42)." ".str_replace(",","",substr($ligntemp,42));
        	   			fwrite($fichier,$ligntemp);
    				$count=$count+1;
    				}
    			}
       		}
       		fclose ($fd);
    		fclose ($fichier);
    		echo "OK Traitement terminé: $count ecritures modifiées !";
    	}
    	else echo "ERREUR : fichier ecritures.txt NON trouve !";
    ?>

    Merci d'avance pour vos lumières..

  2. #2
    Membre expérimenté Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Points : 1 311
    Points
    1 311
    Par défaut
    salut,
    déjà tu devrais utiliser les balises code en cliquant sur # ci dessus, le code est alors plus facile à lire.
    Ensuite, qu'est ce qui ne marche pas? as-tu un message d'erreur?
    Moi à première vue, je ferai un truc comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if ($open = fopen($src,'r')){
    			$content = fread($open, filesize($src));
    			$handle = split("\n", $content);
    			foreach ($handle as $line){
    				if (ereg('£',$line) unset($handle[i]);
    				$i++;
    			}
    }
    J'ai pas testé le code, mais c'est disons pour l'idée

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4
    Points : 1
    Points
    1
    Par défaut réponse
    Citation Envoyé par julien.63
    salut,
    déjà tu devrais utiliser les balises code en cliquant sur # ci dessus, le code est alors plus facile à lire.
    Ensuite, qu'est ce qui ne marche pas? as-tu un message d'erreur?
    Moi à première vue, je ferai un truc comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if ($open = fopen($src,'r')){
    			$content = fread($open, filesize($src));
    			$handle = split("\n", $content);
    			foreach ($handle as $line){
    				if (ereg('£',$line) unset($handle[i]);
    				$i++;
    			}
    }
    J'ai pas testé le code, mais c'est disons pour l'idée

    Désolé pour le vilain copier/coller, je teste ton idée et te route le résultat. Merci!

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4
    Points : 1
    Points
    1
    Par défaut suite
    Désolé mais rien ne se passe, pas de message d'erreur pas de modification dans le fichier, je redonne le code saisi.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <?php
    //définition des variables de travail
    $repertoire=".";
    $src="ecritures.txt";
    if ($open = fopen($src,'r'))
    	{
    			$content = fread($open, filesize($src));
    			$handle = split("\n", $content);
    			foreach ($handle as $line)
    				{
    					if (ereg('£',$line))
    					 {
    					 	unset($handle[i]);
    						$i++;
    					}
    				}
    	}
    ?>
    Merci pour de nouvelles idées ou une correction, je continue à tester de mon côté.

    Citation Envoyé par cgo02
    Désolé pour le vilain copier/coller, je teste ton idée et te route le résultat. Merci!

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4
    Points : 1
    Points
    1
    Par défaut ouhouh
    il n'y a personne

Discussions similaires

  1. [Batch] Mettre une ligne d'un fichier texte dans une variable
    Par guiguir68 dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 21/08/2014, 17h45
  2. Suppression d'une ligne d'un fichier texte
    Par poustou dans le forum MATLAB
    Réponses: 6
    Dernier message: 24/10/2011, 20h01
  3. [TPW] Ajout d'une ligne dans un fichier texte après une position saisie
    Par far3as dans le forum Turbo Pascal
    Réponses: 1
    Dernier message: 19/12/2010, 12h27
  4. Remplacer une ligne d'un fichier texte par une autre
    Par devalender dans le forum WinDev
    Réponses: 12
    Dernier message: 24/07/2007, 20h51
  5. Insérer une ligne d'un fichier texte dans une table
    Par Atemi76 dans le forum Administration
    Réponses: 1
    Dernier message: 10/07/2007, 18h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo