/[webpac]/trunk/all2xml.pl
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/all2xml.pl

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 320 by dpavlin, Sun Apr 18 00:57:39 2004 UTC revision 618 by dpavlin, Fri Dec 31 03:35:43 2004 UTC
# Line 139  sub data2xml { Line 139  sub data2xml {
139                  } else {                  } else {
140                          print STDERR "WARNING: field '$field' doesn't have 'name' attribute!";                          print STDERR "WARNING: field '$field' doesn't have 'name' attribute!";
141                  }                  }
142    
143                  if ($field_name) {                  if ($field_name) {
144                            $field_name = x($field_name);
145                          if (! $last_field_name) {                          if (! $last_field_name) {
146                                  $last_field_name = x($field_name);                                  $last_field_name = $field_name;
147                                  return $last_field_name;                                  return $last_field_name;
148                          } elsif ($field_name ne $last_field_name) {                          } elsif ($field_name ne $last_field_name) {
149                                  $last_field_name = x($field_name);                                  $last_field_name = $field_name;
150                                  return $last_field_name;                                  return $last_field_name;
151                          }                          }
152                  }                  }
# Line 168  sub data2xml { Line 170  sub data2xml {
170                          ($s,$se,$d,$i) = (0,1,0,0);                          ($s,$se,$d,$i) = (0,1,0,0);
171                  } elsif (lc($type) =~ /^lookup/) {                  } elsif (lc($type) =~ /^lookup/) {
172                          ($s,$se,$d,$i,$il) = (0,1,0,0,1);                          ($s,$se,$d,$i,$il) = (0,1,0,0,1);
173                    } elsif ($type) {
174                            print STDERR "WARNING: unknown type: $type\n";
175                  }                  }
176                  return ($s,$se,$d,$i,$il);                  return ($s,$se,$d,$i,$il);
177          }          }
# Line 637  foreach my $database ($cfg->Sections) { Line 641  foreach my $database ($cfg->Sections) {
641          my $lookup_file = $cfg -> val($database, 'lookup_newfile'); # optional          my $lookup_file = $cfg -> val($database, 'lookup_newfile'); # optional
642          if ($lookup_file) {          if ($lookup_file) {
643                  #tie %lhash, 'GDBM_File', $lookup_file, &GDBM_NEWDB, 0644;                  #tie %lhash, 'GDBM_File', $lookup_file, &GDBM_NEWDB, 0644;
644                    if (! -e $lookup_file) {
645                            open(LOOKUP, "> $lookup_file") || die "can't create $lookup_file': $!";
646                            close(LOOKUP);
647                    }
648                  tie %lhash, 'TDB_File', $lookup_file, TDB_CLEAR_IF_FIRST, O_RDWR, 0644;                  tie %lhash, 'TDB_File', $lookup_file, TDB_CLEAR_IF_FIRST, O_RDWR, 0644;
649                  print STDERR "creating lookup file '$lookup_file'\n";                  print STDERR "creating lookup file '$lookup_file'\n";
650                  # delete memory cache for lookup file                  # delete memory cache for lookup file
# Line 659  print STDERR "reading ./import_xml/$type Line 667  print STDERR "reading ./import_xml/$type
667    
668          $config=XMLin("./import_xml/$type.xml", ForceArray => [ $type2tag{$type_base}, 'config', 'format' ], ForceContent => 1 );          $config=XMLin("./import_xml/$type.xml", ForceArray => [ $type2tag{$type_base}, 'config', 'format' ], ForceContent => 1 );
669    
670            # helper for progress bar
671            sub fmt_time {
672                    my $t = shift || 0;
673                    my $out = "";
674    
675                    my ($ss,$mm,$hh) = gmtime($t);
676                    $out .= "${hh}h" if ($hh);
677                    $out .= sprintf("%02d:%02d", $mm,$ss);
678                    $out .= "  " if ($hh == 0);
679                    return $out;
680            }
681    
682          # output current progress indicator          # output current progress indicator
683          my $last_p = 0;          my $last_p = 0;
684            my $start_t = time();
685          sub progress {          sub progress {
686                  return if (! $show_progress);                  return if (! $show_progress);
687                  my $current = shift;                  my $current = shift;
688                  my $total = shift || 1;                  my $total = shift || 1;
689                  my $p = int($current * 100 / $total);                  my $p = int($current * 100 / $total);
690                  if ($p != $last_p) {                  if ($p != $last_p) {
691                          printf STDERR ("%5d / %5d [%-51s] %-2d %% \r",$current,$total,"=" x ($p/2).">", $p );                          my $rate = ($current / (time() - $start_t || 1));
692                            my $eta = ($total-$current) / ($rate || 1);
693                            printf STDERR ("%5d [%-38s] %-5d %0.1f/s %s\r",$current,"=" x ($p/3)."$p%>", $total, $rate, fmt_time($eta));
694                          $last_p = $p;                          $last_p = $p;
695                  }                  }
696          }          }
# Line 807  print STDERR "using: $type...\n"; Line 830  print STDERR "using: $type...\n";
830                          for(my $iC = $oWorksheet->{MinCol} ; defined $oWorksheet->{MaxCol} && $iC <= $oWorksheet->{MaxCol} ; $iC++) {                          for(my $iC = $oWorksheet->{MinCol} ; defined $oWorksheet->{MaxCol} && $iC <= $oWorksheet->{MaxCol} ; $iC++) {
831                                  my $cell = $oWorksheet->{Cells}[$iR][$iC];                                  my $cell = $oWorksheet->{Cells}[$iR][$iC];
832                                  if ($cell) {                                  if ($cell) {
833                                          $row->{int2col($iC)} = $cell->Value;                                          # this conversion is a cludge.
834                                            # Files from Excell could have
835                                            # characters which don't fit into
836                                            # destination encoding.
837                                            $row->{int2col($iC)} = $utf2cp->convert($cell->Value) || $cell->Value;
838                                  }                                  }
839                          }                          }
840    

Legend:
Removed from v.320  
changed lines
  Added in v.618

  ViewVC Help
Powered by ViewVC 1.1.26