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 Perl Discussion :

Suppression cr et lf


Sujet :

Langage Perl

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Suppression cr et lf
    Bonjour,

    je fais une extraction d'un annuaire LDAP vers un fichier LDIF avec un

    $mesg = ldap->search(...)

    puis

    ldif->new ($outputFile,"w")->write($mesg->entries);

    mon problème est que lorsque qu'un ligne est trop longue il me fait un retour à la ligne suivi d'un espace. Comment puis-je les supprimer afin que mon fichier soit par la suite exploitable.

    J'ai essayé :

    my $chaine = $mesg->entries ;
    $chaine =~ s/\r\n //g;
    ou
    $chaine =~ s/\x0D\x0A //g;
    et d'autres mais rien ne fonctionne

    Est ce quelqu'un serait m'aider ?

    Merci, bonne journée

  2. #2
    Membre confirmé Avatar de Katachana
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2007
    Messages : 755
    Points : 503
    Points
    503
    Par défaut
    et comme ca ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $chaine =~ s/\n+ //g;
    $chaine =~ s/\r+ //g;

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    effectivement ça à l'air de fonctionner par contre après traitement sur les entrées je n'arrive plus à le mettre dans le fichier il me donne l'erreur :

    Entry '14601' is not a valid Net::LDAP::Entry object

    voilà mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    my $chaine = $mesg->entries ;
    $chaine =~ s/\n+ //g;
    $chaine =~ s/\r+ //g;
     
     Net::LDAP::LDIF->new( $outputFile,"w" )->write( $chaine );

  4. #4
    Membre confirmé Avatar de Katachana
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2007
    Messages : 755
    Points : 503
    Points
    503
    Par défaut
    Il faut que tu analyses ce que tu as dans chaine. Apparemment, la mise en forme n'est plus respecté.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    exactement, $chaine correspond aux tables de hachage des entrées, il faut donc que j'ouvre mon fichier dans une variable pour faire le traitement dessus et ensuite que je recopie cette variable dans le fichier.

    Est ce que c'est possible ?
    Comment mettre le contenu d'un fichier dans une string pour faire le traitement ? Et ensuite pour remettre le contenu de la variable dans le fichier ?

    voilà 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
     
    my $outputFile = "ldiffExtraction.ldif";
     
    my $ldapMC = Net::LDAP->new($MC_HOST, port => $MC_PORT, version=>3, onerror=>'die') or die "Error while connecting to the metadirectory";
    $ldapMC->bind($MC_USER, password => $MC_PSWD);
     
    my $mesg = $ldapMC->search(
                            base   => $MC_BASE,
                            scope  => 'sub',
                            filter => '(!(objectClass=mdsCVLink))'
                          );
     
    Net::LDAP::LDIF->new( $outputFile,"w" )->write( $mesg->entries);
     
    #open (DESC,$outputFile);
     
    #my $chaine = $1;
    $chaine =~ s/\n+ //g;
    $chaine =~ s/\r+ //g;
     
    #print $chaine ;

  6. #6
    Membre confirmé Avatar de Katachana
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2007
    Messages : 755
    Points : 503
    Points
    503
    Par défaut
    Je ne peux pas trop t'en dire plus , je n'ai jamais utilisé cette librairie. Par contre je pense effectivement que tu peux faire des modifications des informations que tu as récupéré.

    Lien : Net::LDAP

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    505
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Août 2008
    Messages : 505
    Points : 712
    Points
    712
    Par défaut
    A propos du premier problème,, ça marche pas ?

Discussions similaires

  1. Annuler une suppression
    Par Harbaingan dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 09/04/2003, 14h59
  2. [DOM] suppression d'un noeud fils xml en JAVA
    Par alexandre54 dans le forum Format d'échange (XML, JSON...)
    Réponses: 5
    Dernier message: 20/03/2003, 09h44
  3. Suppression de la contrainte unique
    Par mika dans le forum SQL
    Réponses: 3
    Dernier message: 20/02/2003, 17h56
  4. [CR] suppression du bas de page
    Par grosjej dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 10/09/2002, 08h58
  5. Réponses: 3
    Dernier message: 12/06/2002, 21h15

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