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 :

cherche explication sur du code


Sujet :

Langage Perl

  1. #1
    Futur Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 11
    Points : 8
    Points
    8
    Par défaut cherche explication sur du code
    Bonjour à tous,

    Je suis entrain de refaire une application perl en java mais j'ai pas de compétemce en perl, j'ai le code suivant est ce que quequ'un pourrait me l'expliquer ou me fournir l'équivalent en java :
    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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    $requete1="
     SELECT subnet.network,
                subnet.net_mask
     FROM    subnet
     ORDER BY subnet.network desc";
    $sth=$dbh->prepare($requete1);
    $sth->execute();
    my $nb=0;
    my @list;
    my $currad="";
    my $curcol=1;
     
    my @color=("green","lred","lorange","lred","lorange");
     
    while ($pointer=$sth->fetchrow_hashref)
    {
      $long=$pointer->{'net_mask'};
      $long=~/(\d+\.\d+\.\d+)\.(\d+)/;
      $long=(256-$2)/4;
     
      $radical=$pointer->{'network'};;
      $radical=~/(\d+\.\d+\.\d+)\.(\d+)/;
      $radical=$1;
      $start=$2/4;
     
      if(!$data{$radical})
       {
        for($i=0;$i<64;$i++)
         {
          $data{$radical}[$i]=0;
         }
        push(@list,$radical);
       }
      if($radical eq $currad)
       {
        $curcol++;
       }
      else
       {
        $curcol=1;
        $currad=$radical;
       }
      for($i=$start;$i<$start+$long;$i++)
       {
        $data{$radical}[$i]=$curcol;
       }
     
    }
    $sth->finish();
    db_disconnect($dbh);
     
    print<<EOF;
    <table class='table1'>
     <col width=10>
     <col width=120>
     <col width=15 span 64>
     <tr height=50>
      <td></td>
      <td class='c_grey_m'>IP radical name</td>
    EOF
    for($i=0;$i<256;$i+=4)
     {
      $i=~/(\d)(\d?)(\d?)/;
      if($3 ne '')
       {
        print "   <td class='c_grey_m'>$1<br>$2<br>$3</td>\n";
       }
      elsif($2 ne '')
       {
        print "   <td class='c_grey_m'>$1<br>$2</td>\n";
       }
      else
       {
        print "   <td class='c_grey_m'>$1</td>\n";
       }
     }
     
    while(@list)
      {
       $radical=pop(@list);
    print<<EOF;
     <tr>
      <td></td>
      <td class='c_white_m'>$radical.0 / 24</td>
    EOF
       $i=0;
       $cptcolor=1;
     
       while($i<64)
        {
         $cpt=0;
         $curcol=$data{$radical}[$i];
         while($data{$radical}[$i+$cpt]==$curcol && ($i+$cpt)<64)
          {
           $cpt++;
          }
         if($curcol==0)
          {
           print "  <td class='c_".$color[0]."' colspan=$cpt>&nbsp;</td>\n";
          }
         else
          {
           print "  <td class='c_".$color[$cptcolor]."' colspan=$cpt>&nbsp;</td>\n";
           $cptcolor++;
           if($cptcolor>4)
            {
             $cptcolor=1;
            }
          }
         $i+=$cpt;
        }
    Merci d'avance.

  2. #2
    Membre habitué

    Inscrit en
    Janvier 2006
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 188
    Points : 142
    Points
    142
    Par défaut
    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
     
    # Requete Sql...
    $requete1="
     SELECT subnet.network,
                subnet.net_mask
     FROM    subnet
     ORDER BY subnet.network desc";
     
    # $sth sera un pointeur sur les différentes lignes
    $sth=$dbh->prepare($requete1);
    $sth->execute();
    my $nb=0;
    my @list;
    my $currad="";
    my $curcol=1;
     
    # Tbl (commence à 0)
    my @color=("green","lred","lorange","lred","lorange");
     
    # Boucle sur les lignes de résultat de la requete
    while ($pointer=$sth->fetchrow_hashref)
    {
      # $long est le netmask courant
      $long=$pointer->{'net_mask'};
      # On vérifie qu'il est bien sous la forme [0-9]+.[0-9]+.[0-9]+.[0-9]+ 
      # (ça pourrait être plus précis comme regexpr.. :s)
      $long=~/(\d+\.\d+\.\d+)\.(\d+)/;
      # $long reçoit (256 - le dernier octet du netmask)/4 (va savoir pk :s)
      $long=(256-$2)/4;
     
      # $radical c'est le network courant
      $radical=$pointer->{'network'};;
      # comme pour le netmask, on vérifie qu'il est +/- bien formé (4 entiers)
      $radical=~/(\d+\.\d+\.\d+)\.(\d+)/;
      # $radical reçoit les trois premiers octets
      $radical=$1;
      # $start reçoit le dernier octet du network sur 4
      $start=$2/4;
    On peut pas aller plus loin, il manque une portion de code au début qui défini le hash %data...
    ++

Discussions similaires

  1. demande d'explication sur un code
    Par Zilfi63 dans le forum VBA Access
    Réponses: 4
    Dernier message: 08/06/2009, 17h05
  2. Sollicite explication sur un code
    Par Yampougri dans le forum Langage
    Réponses: 2
    Dernier message: 02/12/2007, 00h12
  3. explication sur un code perl
    Par Melvine dans le forum Langage
    Réponses: 5
    Dernier message: 05/10/2006, 16h32
  4. Explication sur du code javascript
    Par griese dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 21/07/2006, 09h40
  5. besoin d'explications sur un code
    Par NAHIAG dans le forum C
    Réponses: 8
    Dernier message: 28/05/2006, 12h37

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