annuncio

Comprimi
Ancora nessun annuncio.

conoscete il PERL ??

Comprimi
X
 
  • Filtro
  • Ora
  • Visualizza
Elimina tutto
nuovi messaggi

  • conoscete il PERL ??

    ho trovato un programmino perl che usa la funzione pack("N2a" etc etc
    mi han detto che converte dei numeri in "32-bit signed big-endian integers" , con ActivePerl per winzozz non funziona sta cosa

    i dati da passare al "pack" li conosco tutti e il ho in una tabella excel vorrei far una formula equivalente lasciando stare conversione perl e riconversione, si puo fare?


    questo il prog :

    codice:
    #!/usr/bin/perl
    eval 'exec /usr/bin/perl -S $0 ${1+"$@"}'
        if $running_under_some_shell;
                    # this emulates #! processing on NIH machines.
                    # (remove #! line above if indigestible)
    
    $/ = "\r\n";            # set input record separator
    $\ = "\r\n";            # set output record separator
    
    open IDX, ">idx";
    
    while (<>) {
        chomp;
        if ($. == 1) {
          s/^.*CATURL/Glambda- CATIDX/;
          print IDX $_;
        }
        if ($. == 2) {
          $n = (@a = split(/\|/));
          $offset = 0;
          for $i (0 .. $n-1) {
              @b = split(/:/, $a[$i]);
    
              if ($b[0] eq 'POSWGS') {
            if ($offset) {
                $Spos =  "x" . $offset . "a" . $b[2];
            } else {
                $Spos =  "a" . $b[2];
            }
              }
              if ($b[0] eq 'NAME') {
            if ($offset) {
                $Sname =  "x" . $offset . "a" . $b[2];
            } else {
                $Sname =  "a" . $b[2];
            }
            $namelen = $b[2];
              }
              $offset += $b[2];
          }
        }
        if ($. > 2) {
          @pos = split(/,/, unpack ($Spos, $_));
          $name = unpack ($Sname, $_);
          @rec = ( @pos, $name );
          push @data, [ @rec ];
        }
    }
    
    $idlen = int(log($#data)/log(10) + 1);
    $delta = ($#data - 2) / int($#data / 50 + .9999);
    print IDX "ID:I:$idlen|POS:P:8|NAME:S:$namelen|_:S:0";
    
    $j = 0;
    LOOP: for $i (0 .. $#data) {
      next LOOP if ($i < $j);
    
      $S = $S . pack("N2",$i,$data[$i][0]) . "|";
      $j += $delta;
    }
    print IDX substr($S, 0, length($S) - 1) . "\0";
    
    for $i (0 .. $#data) {
      print IDX sprintf("%*s", $idlen, $i) . pack("N2a" . $namelen, $data[$i][0], $data[$i][1], $data[$i][2]);
    }
    
    close IDX;
    a cui dovrei dare in pasto :

    codice:
    CATURL-eng/sf_41009.htm_
    POSWGS:S:20|VILLAGE:S:30|CITY:S:31|NAME:S:35|STREE  T:S:44|HOUSENUMBER:S:4|PHONE:S:17|COUNTRY:S:16|ENT  P1:S:20|ENTP2:S:18|ENTP3:S:0|ENTP4:S:0|ENTP5:S:0|E  NTP6:S:0|ENTP7:S:0|ENTP8:S:0|ENTP9:S:0|BRANDNAME:S  :0|_:S:3
    -184146484,335737713                              LAS PALMAS DE GRAN CANARIA     NEON DANCING                       CALLE LUIS MOROTE                           61  +34928266079     ESPAÑA          -184146484,335737713                  ___
    -112663196,462023829                              CASCAIS                        DISCOTECA NEWS                                                                     +351214857325    PORTUGAL        -112663196,462023829                  ___
    -112410389,461600059                              CASCAIS                        DISCOTECA COCONUTS                 AVENIDA REI HUMBERTO II DE ITÁLIA               +351214844109    PORTUGAL        -112410389,461600059                  ___
    -112368871,464839419ERICEIRA                      MAFRA                          OURIÇO                             RUA CAPITÃO JOÃO LOPES                      8   +351261862138    PORTUGAL        -112368871,464839419                  ___
    -111375183,468468070PRAIA DA AREIA BRANCA         LOURINHÃ                       FOZ BAR                            PASSEIO DO MAR                                  +351261471124    PORTUGAL        -111375183,468468070                  ___
    -110906435,461852388                              OEIRAS                         WALL STREET BAR & BISTRO           ESTRADA DE PAÇO DE ARCOS                        +351214411292    PORTUGAL        -110906435,461852388                  ___
    -109986477,462354899VENDA NOVA                    AMADORA                        ABEAS CORPUS                       RUA HENRIQUE DE PAIVA COUCEIRO              8   +351214351918    PORTUGAL        -109986477,462354899                  ___
    -109759202,462343327                              LISBOA                         BOITE BATUCADA                     RUA DR. JOÃO DE BARROS                      5   +351217162506    PORTUGAL        -109759202,462343327                  ___
    -109550061,462868029                              ODIVELAS                       BY                                 AVENIDA AMÁLIA RODRIGUES                    49  +351219313430    PORTUGAL        -109550061,462868029                  ___
    -109498760,461707552                              LISBOA                         Z                                                                                  +351213973948    PORTUGAL        -109498760,461707552                  ___
    -109492914,461709103                              LISBOA                         ZONA DOCA                                                                          +351213972010    PORTUGAL        -109492914,461709103                  ___
    -109491005,461709581                              LISBOA                         CELAT & IBEROS                                                                     +351213976037    PORTUGAL        -109491005,461709581                  ___

    per ottenere:
    codice:
    Glambda- CATIDX-eng/sf_41009.htm
    ID:I:4|POS:P:8|NAME:S:35|_:S:3
        õ%Ì|   2ù~æÀ|   dùØ6^|   –ûÉ>,|   ÈüåU|   úýM*2|  ,ý^)™|  ^ýt¨Ø|  ýác-|  Âþ?>{|  ôþ~|  &þÔš°|  Xþøš
    |  Šÿ+F|  ¼ÿ_Xü|  îÿ˜g|   ÿ½\^|  Rÿâ:ó|  „ÿò€\|  ¶ #¥à|  Ø j•Ð|  
     ÙHÜ|  <ÆB|  n=´®|  *ãW|  Ò˜k%|  £èH|  6¬jþ|  hÉ X|  šçè‚|  Ìr>|  þ>šo|  0_|  bÙu"|  ”åPà|  Æ3³|  øŸ|  * ðâ|  \.ÿ!|  ŽbŠà|  ÀnŠø|  òo¬Ø|  $q>|  V|-|  ˆ–@|  º£–º|  ìËi¯|  	÷ì*|  	P|  	‚a,|  	´<¾&|  	æIQ|  
    [Mu|  
    JaÏÿ|  
    |e‹]|  
    ®ª¯T|  
    àÑî|  ݘå|  Dîd|  vö»ã|  ¨¬Z|  Ú7‡n|  J£b|  >e¦e|  pu*[|  ¢Í›|  Ô”C0|  
    À¡Ô|  
    8ñð[|  
    j,&|  
    ˜£S|  
    Ê/Å1|  
    üNX;|  .m´˜|  `…ÏY|  ’‰ú|  Ä–¼‡|  öÉ™ƒ|  (æÊÔ|  ZíÊD|  Œ
    ‘S|  ¾“*|  ðKü·|  sÂ|  LÜŽR|  ~’ë|  °Ž÷|  â@eò|  r'”|  FšÀ™|  xÂAˆ|  ªÞuT|  ÜáÃ¥|  ë”÷|  ;ú2À|  m	 „|  Ÿ	FO(|  Ñ	Jì|  	)|  5	–¾Ü|  g	Ìß|  ™
    S¢|  Ë
    )Ák|  ô
    h=|  &
    ÓVË|  Xpì|  Š‹§È|  ¼š¹œ|  îž„[|   *;\|  R¡I2|  „¢û|  ¶¤è|  褔@|  ¥Ó|  L¦«|  ~ª#„|  *Ü×}|  Ñ_P™|  èVti 
       0õ%ÌóqNEON DANCING                       ___
       1ùHåd‰ì•DISCOTECA NEWS                     ___
       2ùLÀëƒu;DISCOTECA COCONUTS                 ___
       3ùMc´âûOURIÇO                             ___
       4ù\Œ±ìAfFOZ BAR                            ___
       5ùc³½‡NäWALL STREET BAR & BISTRO           ___
       6ùq½SŽùÓABEAS CORPUS                       ___
       7ùu5ŽÌŸBOITE BATUCADA                     ___
       8ùxf–Î=BY                                 ___
       9ùy.x… Z                                  ___
      10ùyEN…/ZONA DOCA                          ___
     .....
    la parte che mi da il pack sono tutti i simboli strani
    http://www.casaportale.com/public/up...io_ditalia.pdf

    Spiacenti ---- è un moderatore/amministratore e non ti è consentito ignorarlo.
    ok, ma per ignorare solo al parte utonto ? quella che continua a scriver un mare di caxxate ?
Sto operando...