Changeset 14
- Timestamp:
- 1998-11-17T22:48:46+13:00 (25 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/gsdl/perllib/arcinfo.pm
r4 r14 11 11 sub new { 12 12 my ($class) = @_; 13 my $self = {'info'=>{}}; 13 my $self = {'info'=>{}, 14 'order'=>[]}; 14 15 15 16 return bless $self, $class; … … 31 32 @line = split ("\t", $line); # filename, 32 33 if (scalar(@line) >= 2) { 33 $self->add_info ( $line[0], $line[1]);34 $self->add_info (@line); 34 35 } 35 36 } … … 43 44 my ($filename) = @_; 44 45 45 my ($OID );46 my ($OID, $info); 46 47 47 48 open (OUTFILE, ">$filename") || 48 49 die "arcinfo::save_info couldn't write $filename\n"; 49 50 50 foreach $OID (keys(%{$self->{'info'}})) { 51 my $info = $self->get_info($OID); 51 foreach $info (@{$self->get_OID_list()}) { 52 52 if (defined $info) { 53 print OUTFILE "$OID\t",join("\t", @$info), "\n";53 print OUTFILE join("\t", @$info), "\n"; 54 54 } 55 55 } … … 58 58 } 59 59 60 sub delete_info { 61 my $self = shift (@_); 62 my ($OID) = @_; 63 64 if (defined $self->{'info'}->{$OID}) { 65 delete $self->{'info'}->{$OID}; 66 67 my $i = 0; 68 while ($i < scalar (@{$self->{'order'}})) { 69 if ($self->{'order'}->[$i] eq $OID) { 70 splice (@{$self->{'order'}}, $i, 1); 71 last; 72 } 73 74 $i ++; 75 } 76 } 77 } 78 60 79 sub add_info { 61 80 my $self = shift (@_); 62 81 my ($OID, $doc_file) = @_; 63 82 83 $self->delete_info ($OID); 64 84 $self->{'info'}->{$OID} = [$doc_file]; 85 push (@{$self->{'order'}}, $OID); 65 86 } 66 87 … … 72 93 my @list = (); 73 94 74 foreach $OID ( sort(keys(%{$self->{'info'}}))) {95 foreach $OID (@{$self->{'order'}}) { 75 96 push (@list, [$OID, $self->{'info'}->{$OID}->[0]]); 76 97 } … … 86 107 my @list = (); 87 108 88 foreach $OID ( sort(keys(%{$self->{'info'}}))) {109 foreach $OID (@{$self->{'order'}}) { 89 110 push (@list, [$self->{'info'}->{$OID}->[0], $OID]); 90 111 }
Note:
See TracChangeset
for help on using the changeset viewer.