On Wed, May 28, 2008 at 8:29 PM, Dobrica Pavlinusic <[EMAIL PROTECTED]> wrote:
> On Tue, May 27, 2008 at 01:03:22PM +0530, Saiful Amin wrote: > > You can download the sample database of 50 records, in which MFN 18 and > 19 > > are logically deleted, from the following link: > > http://122.166.0.252/sample.zip > > I can't reproduce your problem. When I try to dump your records using > dump_isisdb.pl included in Bibio::ISIS distribution (with options to start > at record 17, and dump just 4 records) I get: > > I would love to help you with this, but I'm puzzled. > I didn't know about the dump script. My script is quite a long one. I'm attaching a portion of that script which is not able to ignore the logically deleted records. -- Saiful Amin +91 9343826438
#!/usr/bin/perl # # Name: ccf2marc.pl # Author: Saiful Amin <[EMAIL PROTECTED]> # Date: May 2008 # Version: 0.4 # Description: Takes the CDS/ISIS as input and gives valid MARC21 data as output. # use strict; use warnings; #use diagnostics; use Biblio::Isis; use MARC::Record; # Usage Instructions die "\nUSAGE: $0 Output_file\n" unless defined $ARGV[0]; # Open the ISIS Database my $isis = new Biblio::Isis ( isisdb => 'C:/WINISIS/DATA/sample/', #include_deleted => 0, debug => 0 ); open (OUTFILE, ">$ARGV[0]"); my $num = 0; ################################################### for (my $mfn = 1; $mfn <= $isis->count; $mfn++) { my $marc = MARC::Record->new(); my $record = $isis->to_hash($mfn); my $first_author_a = $$record{300}[0]{a}; my $first_author_b = $$record{300}[0]{b}; my $first_author_e = $$record{300}[0]{f}; my $corp_author_a = $$record{310}[0]{a}; my $corp_author_b = $$record{310}[0]{b}; my $corp_author_c = $$record{310}[0]{d}; my $corp_author_cc = $$record{310}[0]{e}; my $field_245a = $$record{200}[0]{a}; my $field_245c = $$record{200}[0]{b}; my $conf_author_a = $$record{320}[0]{a}; my $conf_author_cc = $$record{320}[0]{e}; my $conf_author_c = $$record{320}[0]{g}; my $conf_author_d = $$record{320}[0]{h}; my $conf_author_n = $$record{320}[0]{j}; $num++; ################################################### # Create the Leader and map with relevant codes ################################################### # Prepare the Leader my $leader = '00054nam#a22002891a 4500'; $marc->leader($leader); ################################################### # Create the fixed field tags (007/008) ################################################### my $data_008 = '080528| r| ||111|eng||||'; my $tag_008 = MARC::Field->new('008', $data_008); $marc->append_fields($tag_008); ####################################################### # Create the first author (Main Entry/Added Entry) ####################################################### # First author in tag_100 if ($first_author_a) { my $first_author = "$first_author_a"; $first_author .= ", $first_author_b" if $first_author_b; my $main_author = ''; if ($corp_author_a || $conf_author_a) { $main_author = MARC::Field->new('700', 1,'', 'a' => ''); } else { $main_author = MARC::Field->new('100', 1,'', 'a' => ''); } $main_author->update('a' => $first_author); $main_author->update('e' => $first_author_e) if $first_author_e; $marc->append_fields($main_author); } ####################### ## The Title Section ## ####################### my $title = $field_245a; my $state_of_resp = ''; if ($field_245c) { $state_of_resp = $field_245c; } #print "$mfn\n" if !defined $title; $title = "No title found" if !defined $title; # Create Title field my $tag_245 = MARC::Field->new('245',1,0, 'a' => "$title" ); $tag_245->update('c' => $state_of_resp) if $state_of_resp; $marc->append_fields($tag_245); ################################################### # Write output to OUTFILE ################################################### print OUTFILE $marc->as_usmarc(); print STDOUT "Printed record number $mfn\n"; } close (OUTFILE);