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     ESPAA          -184146484,335737713                  ___
    -112663196,462023829                              CASCAIS                        DISCOTECA NEWS                                                                     +351214857325    PORTUGAL        -112663196,462023829                  ___
    -112410389,461600059                              CASCAIS                        DISCOTECA COCONUTS                 AVENIDA REI HUMBERTO II DE ITLIA               +351214844109    PORTUGAL        -112410389,461600059                  ___
    -112368871,464839419ERICEIRA                      MAFRA                          OURIO                             RUA CAPITO JOO 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 PAO 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. JOO DE BARROS                      5   +351217162506    PORTUGAL        -109759202,462343327                  ___
    -109550061,462868029                              ODIVELAS                       BY                                 AVENIDA AMLIA 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~|   d6^|   >,|   U|   M*2|  ,^)|  ^t|  c-|  ?>{|  ~|  &Ԛ|  X
    |  +F|  _X|  g|   \^|  R:|  \|   #|   j|  
     H|  <B|  n=|  *W|  k%|  H|  6j|  h X|  |  r>|  >o|  0_|  bu"|  P|  3|  |  * |  \.!|  b|  n|  o|  $q>|  V|-|  @|  |  i|  	*|  	P|  	a,|  	<&|  	IQ|  
    [Mu|  
    Ja|  
    |e]|  
    T|  
    |  ݘ|  Dd|  v|  Z|  7n|  Jb|  >ee|  pu*[|  ͛|  C0|  
    |  
    8[|  
    j,&|  
    S|  
    /1|  
    NX;|  .m|  `Y|  |  |  ə|  (|  ZD|  
    S|  *|  K|  s|  L܎R|  ~|  |  @e|  r'|  F|  xA|  uT|  å|  |  ;2|  m	 |  	FO(|  	J|  	)|  5	|  g	|  
    S|  
    )k|  
    h=|  &
    V|  Xp|  |  |  [|   *;\|  RI2|  |  |  @|  |  L|  ~#|  *}|  _P|  Vti 
       0%qNEON DANCING                       ___
       1HdDISCOTECA NEWS                     ___
       2Lu;DISCOTECA COCONUTS                 ___
       3McOURIO                             ___
       4\AfFOZ BAR                            ___
       5cNWALL STREET BAR & BISTRO           ___
       6qSABEAS CORPUS                       ___
       7u5̟BOITE BATUCADA                     ___
       8xf=BY                                 ___
       9y.x Z                                  ___
      10yEN/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...
X