Rechercher : dans
Par :

[PERL] supprimer commentaire

Dernière réponse le 31 jui 2008 à 10:30:51 wafa_o, le 29 jui 2008 à 08:54:28 
 Signaler ce message aux modérateurs

Bonjour,

Est ce que quelqu'un sait comment supprimer les commentaires dans un fichier avec les regexp.
Je voudrais une ligne de commande du genre :
$tab[$_] =~ ....
où $tab est un tableau, j'y met chaque ligne de mon fichier.
Merci d'avance.

Configuration: Windows XP
Internet Explorer 6.0

Meilleures réponses pour « [PERL] supprimer commentaire » dans :
[Logiciels] Désinstaller/Supprimer Windows Messenger VoirNote Suppression Suppression de Windows Messenger en ligne de commande Suppression de Windows Messenger par le panneau de configuration Note Windows Messenger est une version "allégée" de son grand frère, MSN Messenger. Elle peut...
[Windows] Impossible de supprimer un fichier ou un dossier VoirSi Windows n'arrive pas à supprimer un fichier ou un dossier, la cause peut être l'une des suivantes : Le fichier ou le dossier à supprimer est utilisé par un processus du système Le dossier à supprimer contient des fichiers ou dossiers cachés ...
Supprimer l'historique des recherches VoirLorsque vous utilisez un formulaire de saisie, par exemple dans la barre de recherche de Google, le navigateur affiche la liste des dernières recherches. Pour des raisons de confidentialité ou d'optimisation, vous souhaitez supprimer une ou...
Télécharger Logiciel à supprimer VoirLogiciel à supprimer - illégale (En violation de la GPL) De plus, le site de l'éditeur est listé chez MalwareDomains.
Télécharger Support IPX pour Vista VoirLe protocole IPX/SPX sert à de nombreux anciens jeux pour pouvoir jouer en réseau (Red Alert, Command & Conquer, etc.). Malheureusement, Microsoft a retiré le support du protocole IPX/SPX dans Vista (32bit). Néanmoins, il est possible de...
Perl - Caractéristiques du langage VoirFichier source, et interprétation Le fichier source d'un programme écrit en Perl est un simple fichier texte dont l'extension est par convention .pl. Ce fichier source doit être un fichier texte non formatté, c'est-à-dire un fichier texte dans sa...
Supplier Relationship Management (SRM) VoirSupplier Relationship Management Le terme « Supplier Relationship Management » (noté SRM), traduisez « gestion de la relation fournisseur » désigne l'utilisation de technologies par une entreprise afin d'améliorer le mécanisme d'approvisionnement...
Perl - Les fichiers VoirLa notion de filehandle On appelle filehandle (traduisez descripteur de fichier), dans un programme Perl, le nom permettant de manipuler une connexion d'entrée-sortie (les entrées-sorties standards vues précédemment sont connues par les filehandles...

1

wafa_o, le 29 jui 2008 à 15:31:08

Une idée?

Répondre à wafa_o

2

theMan, le 29 jui 2008 à 15:33:44

Ta question est non claire à lala wafaa

Répondre à theMan

3

wafa_o, le 29 jui 2008 à 15:46:06

J'ai un fichier. Je place chaque ligne de mon fichier dans un tableau. Je souhaite supprimer toutes les lignes commencant par #. Ou placer toutes les lignes de mon fichier autre que des commentaires dans mon tableau.

Est ce que c'est plus claire theMan ?

Répondre à wafa_o

4

theMan, le 29 jui 2008 à 15:56:45

Substr(exemple,0,1), vous obtenez comme résultat "e". Extraire un caractère à partir de la position 0

Pour chaque ligne lu dans ton fichier

Lire le premier caractère avec substr(ligne,0,1)
si ce caractère égal è #
palcer la ligne dans le tableau

Lire ligne suivante.

Mezaine!

Répondre à theMan

5

davlar, le 29 jui 2008 à 16:01:31

Ouvre ton fichier et met-le dans un tableau (faire un open et l'affecté à une variable du genre @fichier)

et ensuite fait un foreach et (selon si tu l'as ouvert en rw ou en r) supprime les lignes que tu veux ou bien compose un nouveau fichier avec les lignes de ta condition.

A+

Dave

Répondre à davlar

7

wafa_o, le 29 jui 2008 à 16:04:12

C'est ce que j'ai fait davlar. Je vais essayer le foreach ...

Répondre à wafa_o

6

wafa_o, le 29 jui 2008 à 16:02:38

Merci mais ce n'est pas du tout ce que je souhaite avoir en sortie. Enfin je comprends pas trop ce que tu fais.

Répondre à wafa_o

8

wafa_o, le 29 jui 2008 à 16:25:07
  • +1

Je pense avoir trouvé.

open(D ,$file ) or die "ERREUR ! \n"; while (my $line = <D> ) {

if ($line !~ /^#/) {
push @tableau , $line
}
}
close(D) ;

Répondre à wafa_o

9

theMan, le 29 jui 2008 à 16:29:45

Iwa meziane

Répondre à theMan

10

wafa_o, le 29 jui 2008 à 16:34:04

Hamdoulilah compatriote

Répondre à wafa_o

11

theMan, le 29 jui 2008 à 16:38:06

Mnine ntia?

Répondre à theMan

12

davlar, le 29 jui 2008 à 16:45:21

Tu veux faire qqe chose du genre ?

main();

sub rtrim($) # Right trim function to remove trailing whitespace
{
my $string = shift;
$string =~ s/\#.*?$//g;
return $string;
}



sub main()
{
open (FILE,"fichier_avec_commentaire.txt");
@z_fichier = <FILE>;
foreach $ligne (@z_fichier) # on boucle sur chaque ligne du tableau jusqu'au EOF
{
$resultat = rtrim($ligne);
print "pas de commentaire: $resultat\n";
}
close (FILE);
}

Répondre à davlar

13

wafa_o, le 29 jui 2008 à 16:50:09

Merci Davlar, j'ai trouvé ce que je voulais avoir en sortie.
J'ai ecris le bout de code au dessus.
En tout cas merci pour ton aide.

Répondre à wafa_o

14

lami20j, le 29 jui 2008 à 18:17:41

Salut,

tu parles de celui ci

tu peux faire comme ça ;-)

lami20j@debian:~/trash$ cat fichier.txt
# ligne 1
ligne 2
# ligne 3
#ligne 4
ligne 5
lami20j@debian:~/trash$ cat ccm.pl
#!/usr/bin/perl
#
use warnings;use strict;

my $file="fichier.txt";

open D ,$file or die "E/S : $! \n";

my @tableau = grep { ! /^#/ } <D>;
print for @tableau;

close D ;
__END__
lami20j@debian:~/trash$ perl ccm.pl
ligne 2
ligne 5
lami20j@debian:~/trash$
Il y a plusieurs façons de le faire en Perl, à toi de choisir celle qui te conviens le plus ;-)


106485010510997108

Répondre à lami20j

15

lami20j, le 29 jui 2008 à 18:21:47

Re,

voici une version plus compacte ;-) (pour Linux)

lami20j@debian:~/trash$ cat ccm.pl
#!/usr/bin/perl
#
use warnings;use strict;
my @tableau = grep { ! /^#/ } `cat fichier.txt`;
print for @tableau;
__END__

106485010510997108

Répondre à lami20j

16

 wafa_o, le 31 jui 2008 à 10:30:51

Thanks !

Répondre à wafa_o