assign_column_names_to_file( \@options_lines, \%{ $files{'options'}{'c
+olumns'} } );
foreach $key (sort keys $files{'options'}{'columns'}{'config'}->%* ){
print "columns: $key\n";
}
#############################################################
sub assign_column_names_to_file{ # \@options_lines, $file{'options'}->
+{columns} (hash reference)
my ($options_lines, $columnhash) = @_; #array ref, hash ref
# this function populates a reference to a hash which has all the
+column names, numbers, and states
my $regex__cfg_names = qr"^(\/\*\+\*\/\s+\/\*\|)(.*)\*\/\r?$";
my $horizontal_offset = 116; #magic number, could calculate dynami
+cally
#my $horizontal_offset = 0;
my @letters = ();
my @config_names = ();
my @columns = ();
my $i = 0;
my $j = 0;
my $line;
foreach $line (@$options_lines) {
# read config names at top of file into $config_name
if ($line =~ m/${regex__cfg_names}/) {
#$horizontal_offset = length($1);
#print (length($1 . "\n") - 1);
undef @letters;
@letters = split (/ ?/, $2);
for ($i = 0; $i < @letters; $i++) {
if( $letters[$i] ne " " ){
$config_names[$i] .= $letters[$i];
}
#print STDERR "\nConfig Name:".$config_names [$i];
}
}
}
for( $i = 0; $i < @config_names ; $i++){
if( $config_names[$i] =~ m/.*ooo.*/ ){
#print "skipping $config_names[$i], column " . ($horizonta
+l_offset + $i * 2) . "\n";
next;
} else {
#print "trying to add $config_names[$i], column " . ($hori
+zontal_offset + $i * 2) . "\n";
$$columnhash{'config'}{"$config_names[$i]"}{'column number
+'} = $horizontal_offset + $i * 2;
$$columnhash{'column number'}{$horizontal_offset + $i * 2}
+{'config'} = "$config_names[$i]";
for( $j = 0; $j < @$options_lines; $j++){
if ( (length $$options_lines[$j] > $horizontal_offset
++ $i * 2 ) && (substr($$options_lines[$j], $horizontal_offset + $i *
+2, 1) ne " ") ){
$$columnhash{'column number'}{$horizontal_offs
+et + $i * 2}{'states'}{$j} = substr($$options_lines[$j], $horizontal_
+offset + $i * 2, 1);
#print $columnhash->{'column number'}->{$horiz
+ontal_offset + $i * 2}->{'states'}{$j};
$$columnhash{'config'}{"$config_names[$i]"}{'r
+owstates'}{$j} = substr($$options_lines[$j], $horizontal_offset + $i
+* 2, 1);
}
}
}
}
# #foreach $key ( keys $$columnhash{'column number'}{$horizontal_of
+fset + $i * 2}->%* ){
# foreach $key (sort keys %{ $$columnhash{'config'} } ){
# print "$key\n";
# }
return 0;
}
|