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 :

Probleme avec print dans un fichier


Sujet :

Langage Perl

  1. #1
    Membre du Club Avatar de goblin
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 62
    Points : 53
    Points
    53
    Par défaut Probleme avec print dans un fichier
    J'ai un petit problème de print , je cherche comment écrire entre trois ligne

    J'ai une amorce de fichier xml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?xml version="1.0" encoding="utf-8" ?>
     
    <base>
     
    </base>
    je voudrais écrire des informations entre <base> et </base>

    Voici le bout de code qui pose problème

    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
    sub print_xml
    {
      open (FILE, ">>report.xml");
      flock(FILE, 2); #verouillage
      print FILE "\n";
      print FILE "<base>\n";
      print FILE "<hack>\n";
      print FILE "<ip>$ip</ip>\n";
      print FILE "<date>$date</date>\n";
      print FILE "<ref>$ref</ref>\n";
      print FILE "<domain>$domain</domain>\n";
      print FILE "<port>$port</port>\n";
      print FILE "<method>$method</method>\n";
      print FILE "</hack>\n";
      close (FILE);
      flock(FILE, 8); #deverouillage
    }
    merci de vos réponses

  2. #2
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    je ne sais pas ce que veut dire flock ! peux tu nous expliquer, est ce une de tes fonctions?
    Bref, sinon j'ai remarqué que t'ai écris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    open (FILE, ">>report.xml");
    et le >> permet uniquement d'ecrire en fin de fichier et non entre fichier, donc tu ne pourras pas travailler ainsi.
    Generalement, lorsqu'on veut remplacer quelque chose dans un fichier, du moins en ce qui me concerne, j'utilise toujours un fichier temporaire toto_temp.txt par exemple.
    Et j'y ecris tous les lignes de mon ancien fichier qui ne changent pas ainsi que le changements ou nouvelles lignes. Puis je detruit le fichier original et renomme le fichier temporaire par le nom de l'ancien fichier.
    Voilà.
    NB: autre conseil aussi, je sais pas les taches que tu dois accomplir, mais du moment ou tu traites du XML, je te conseil d'utiliser une des modules du CPAN.
    Bon courage

  3. #3
    Membre du Club Avatar de goblin
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 62
    Points : 53
    Points
    53
    Par défaut
    Flock permet de poser un vérou sur un fichier pour empécher sa modification pendant qu'une autre est en cour pas exemple.

    Pour ce qui est de open effectivement une solution tel que celle-ci est plus aproprié

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    open FICHIER, $fi || die "Unable to open $fi: $!";
    Je veut juste remplir mon fichier Xml c'est tout le " traitement " seras fait dans du html grace au Data island , donc pas beoin de module pour le Xml

  4. #4
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Attention, ton dernier code ouvre le fichier en lecture uniquement, tu ne peux plus écrire dedans, pour utiliser la solution proposée par djibril, il faut également ouvrir un fichier temporaire en écriture (avec '>').

    --
    Jedaï

  5. #5
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    bonne remarque de jedai 8)
    si t'as des soucis sur la manipulation des fichiers, n'hésite pas à regarder la faq qu'on a ecris ainsi que les cours de GLDavid, lien dans ma signature.

Discussions similaires

  1. probleme avec l'affichage des fichier pdf dans webBrowser
    Par mounir01 dans le forum Windows Forms
    Réponses: 0
    Dernier message: 21/11/2013, 11h34
  2. Problème avec accent dans fichier
    Par shaun_the_sheep dans le forum Administration système
    Réponses: 3
    Dernier message: 19/11/2006, 20h46
  3. [C#] Probleme avec TextBox dans un DataGrid
    Par Oberown dans le forum ASP.NET
    Réponses: 4
    Dernier message: 21/12/2004, 16h05
  4. [langage] Probleme avec caractère '$' dans script Perl
    Par zouetchou dans le forum Langage
    Réponses: 11
    Dernier message: 24/07/2004, 15h35
  5. Probleme d'ecriture dans un fichier en mode Text
    Par bbozet dans le forum C++Builder
    Réponses: 3
    Dernier message: 14/01/2004, 13h46

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