Thanks! You've been very helpful.

Would you say it's the way Gramps is exporting the gedcom files or something 
else?
I have submitted to them as a possible bug.



Rich

-----Original Message-----
From: Bill Anderson [mailto:b...@anderson-ent.com] 
Sent: Tuesday, April 27, 2010 9:13 PM
To: perl-gedcom@perl.org
Subject: Re: Reading Notes field in gedcom files

Here is the script, modified to give the results expected. Notice the
use of resolve_xrefs and ref.

#!/bin/perl -w

use strict;

use Gedcom;

my $ged = Gedcom->new(shift);

$ged->resolve_xrefs;

for my $i ( $ged->individuals )

{

    for my $n ( $i->note )

    {

        print "========================================\n";

        print $i->name, "\n";

        if (ref $n)
        {
           print $n->get_value, "\n";
        }
        else
        {
           print "$n\n";
        }

        #print "========================================\n";

    }

}


On 4/26/2010 6:25 PM, Bill Anderson wrote:
> I believe your script and the GEDCOM module are working correctly, but
> you do not get the results you expect because of the way your GEDCOM
> file is constructed.
>
> To illustrate, consider two sample files. The first is at
> http://www.ged-gen.com/download/lincoln.ged
>
> If you run your script against this file, you will see what you expect.
>
> The second is at http://www.genealogyforum.com/gedcom/gedcom1/ged1.ged
>
> When running your script against the second GEDCOM file, you will get
> the cross reference numbers you described below.
>
> If the GEDCOM file includes the note text in the tag value, as in the
> first file, you will get what you are looking for.
>
> If the GEDCOM file includes a cross reference to a note record, you will
> get the reference numbers.
>
> You need to add some tests to your script to see if you are getting note
> text, or a cross reference. If the latter, you need some code to fetch
> the note text from the separate note record.
>
>
>
> On 4/26/2010 3:41 PM, richgo...@comcast.net wrote:
>   
>> Hoping I can get this question answered here. 
>>
>> I have been trying to use perl to parse gedcom files and have not had much 
>> luck. 
>> My main goal is to get it to show me a list of people and then the contents 
>> of the notes section of their record. My script is based on the example code 
>> found here: 
>> http://search.cpan.org/dist/Gedcom/lib/Gedcom.pm 
>>
>> The only results I can seem to get back is the persons name and the 
>> reference number of the notes associated with that person. 
>>
>> I appreciate any help on this matter 
>>
>> Thanks ! 
>>
>> Script follows: 
>>
>>
>>
>> #!/bin/perl -w 
>>
>> use strict; 
>>
>> use Gedcom; 
>>
>> my $ged = Gedcom->new(shift); 
>>
>> for my $i ($ged->individuals) 
>>
>> { 
>>
>> for my $n ($i->get_value("note")) 
>>
>> { 
>>
>>
>> print "========================================\n"; 
>>
>> print $i->name, "\n"; 
>>
>> print $i->note, "\n"; 
>>
>> #print "========================================\n"; 
>>
>> } 
>>
>> } 
>>
>>
>>
>>   
>>     

Reply via email to