--- db/prgsrc/dump2dump.pl 2001/10/31 03:00:10 1.1 +++ db/prgsrc/dump2dump.pl 2001/10/31 03:07:27 1.2 @@ -1,94 +1,94 @@ -#!/usr/local/bin/perl -w - -=head1 NAME - -dump2dump.pl - Скрипт для преобразования номеров вопросов в дампе, -созданном скриптом dumpRS.pl, используя таблицы, созданные скриптом -dumpin2out.pl. У обработанных вопросов устанавливает ProcessedBySearch=1 -(loaddump уже не бует обладать этой информацией) - - -=head1 SYNOPSIS - -dump2dump.pl input output oldtable newtable - - -=head1 AUTHOR - -Роман Семизаров - - -=cut - - -use dbchgk; - -open (T2, $ARGV[3]) or die "3: Can not open ". $ARGV[3]; - -open (OUTTABLE, ">d423JX2"); - -print "loading new table\n"; - -while () -{ - ($id,$name)=split; - $temp{$name}=$id; -} - -print "loading old table\n"; -open (T1, $ARGV[2]) or die "2: Can not open ". $ARGV[2]; - -while () -{ - ($in,$out)=split; - $id{$in}=$temp{$out}; -} - -#%temp=undef; - -close(T1); -close(T2); - - - -open (DUMP1, $ARGV[0]) or die "0: Can not open ". $ARGV[0]; -binmode(DUMP1); -open (DUMP2, ">".$ARGV[1]) or die "1: Can not open ". $ARGV[1]; -binmode(DUMP2); - -print "getting and writing dump\n"; -while (read(DUMP1, $w,4)) -{ - print "$sch...\n" unless (++$sch%100); - read(DUMP1,$l,4); - read(DUMP1,$q,unpack("L",$l)); - $q=~s/(.)(..)(.)/$1.pack("S",$id{unpack("S",$2)}).$3/sge; - - print DUMP2 $w,$l,$q; -} - -close (DUMP1); -close (DUMP2); - -print "Setting ProcessedBySearch...\n"; - - -$sch=0 -foreach my $id (values %id) -{ - print " $sch...\n" unless (++$sch%100); - mydo("update Questions set ProcessedBySearch=1 where QuestionId=$id"); -} - - - - - -sub s -{ - my $a=shift; - my $unpacked=unpack("S",$a); - $unpacked=$id{$unpacked}; - my $packed=pack("S",$unpacked); - $packed; -} +#!/usr/local/bin/perl -w + +=head1 NAME + +dump2dump.pl - Скрипт для преобразования номеров вопросов в дампе, +созданном скриптом dumpRS.pl, используя таблицы, созданные скриптом +dumpin2out.pl. У обработанных вопросов устанавливает ProcessedBySearch=1 +(loaddump уже не бует обладать этой информацией) + + +=head1 SYNOPSIS + +dump2dump.pl input output oldtable newtable + + +=head1 AUTHOR + +Роман Семизаров + + +=cut + + +use dbchgk; + +open (T2, $ARGV[3]) or die "3: Can not open ". $ARGV[3]; + +open (OUTTABLE, ">d423JX2"); + +print "loading new table\n"; + +while () +{ + ($id,$name)=split; + $temp{$name}=$id; +} + +print "loading old table\n"; +open (T1, $ARGV[2]) or die "2: Can not open ". $ARGV[2]; + +while () +{ + ($in,$out)=split; + $id{$in}=$temp{$out}; +} + +#%temp=undef; + +close(T1); +close(T2); + + + +open (DUMP1, $ARGV[0]) or die "0: Can not open ". $ARGV[0]; +binmode(DUMP1); +open (DUMP2, ">".$ARGV[1]) or die "1: Can not open ". $ARGV[1]; +binmode(DUMP2); + +print "getting and writing dump\n"; +while (read(DUMP1, $w,4)) +{ + print "$sch...\n" unless (++$sch%100); + read(DUMP1,$l,4); + read(DUMP1,$q,unpack("L",$l)); + $q=~s/(.)(..)(.)/$1.pack("S",$id{unpack("S",$2)}).$3/sge; + + print DUMP2 $w,$l,$q; +} + +close (DUMP1); +close (DUMP2); + +print "Setting ProcessedBySearch...\n"; + + +$sch=0 +foreach my $id (values %id) +{ + print " $sch...\n" unless (++$sch%100); + mydo("update Questions set ProcessedBySearch=1 where QuestionId=$id"); +} + + + + + +sub s +{ + my $a=shift; + my $unpacked=unpack("S",$a); + $unpacked=$id{$unpacked}; + my $packed=pack("S",$unpacked); + $packed; +}