Ignore:
Timestamp:
2010-01-21T14:00:10+13:00 (14 years ago)
Author:
mdewsnip
Message:

Added to dbutil.pm two new general functions: convert_infodb_string_to_hash() and convert_infodb_hash_to_string(). These will replace GDBMUtils::parseStringToHash() and GDBMUtils::serializeHash().

File:
1 edited

Legend:

Unmodified
Added
Removed
  • main/trunk/greenstone2/perllib/dbutil.pm

    r21547 r21550  
    259259
    260260
     261# ---- GENERAL FUNCTIONS --------
     262
     263sub convert_infodb_hash_to_string
     264{
     265  my $infodb_map = shift(@_);
     266
     267  my $infodb_entry_value = "";
     268  foreach my $infodb_value_key (keys(%$infodb_map))
     269  {
     270    foreach my $infodb_value (@{$infodb_map->{$infodb_value_key}})
     271    {
     272      $infodb_entry_value .= "<$infodb_value_key>" . $infodb_value . "\n";
     273    }
     274  }
     275
     276  return $infodb_entry_value;
     277}
     278
     279
     280sub convert_infodb_string_to_hash
     281{
     282  my $infodb_entry_value = shift(@_);
     283
     284  my $infodb_map = ();
     285  while ($infodb_entry_value =~ /^<(.*?)>(.*)$/mg)
     286  {
     287    my $infodb_value_key = $1;
     288    my $infodb_value = $2;
     289
     290    if (!defined($infodb_map->{$infodb_value_key}))
     291    {
     292      $infodb_map->{$infodb_value_key} = [ $infodb_value ];
     293    }
     294    else
     295    {
     296      push(@{$infodb_map->{$infodb_value_key}}, $infodb_value);
     297    }
     298  }
     299
     300  return $infodb_map;
     301}
     302
     303
    2613041;
Note: See TracChangeset for help on using the changeset viewer.