Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

Re^3: Multiple Rows

by mtmcc (Hermit)
on Oct 04, 2013 at 20:16 UTC ( [id://1056927]=note: print w/replies, xml ) Need Help??


in reply to Re^2: Multiple Rows
in thread Multiple Rows

I'm glad you've made some progress.

I'm not certain what you mean by lining up the rows; if you mean aligning the columns, then you could do something like use a table widget, instead of a label/ROText, like this:

#!/usr/bin/perl use strict; use warnings; use Tk; use Tk::ROText; use Tk::Table; my $hdb; my $window = MainWindow->new; $window->title("Host Report"); my $labs = $window->Table(-columns => 3, -rows => 5)->pack(-side => 'b +ottom'); $labs -> put (1, 1, "Results"); $window->Entry(-textvariable => \$hdb )->pack; $window->Button(-text => "Go", -command => \&host )->pack; $window->Button(-text => "Quit", -command => \&stop )->pack; MainLoop; sub host { #open (FH, "<", "host.txt"); my $row = 2; my $col = 0; my $x = 0; my @lines = <DATA>; print STDERR "@lines\n\n"; #close FH; foreach my $hdb2 (@lines) { chomp $hdb2; my @field = split(':',$hdb2); #if ($field[0] =~ /(?<![\w-])$hdb(?![\w-])/i) { for ($x=0; $x <=2; $x += 1) { $field[$x] = '' unless defined $field[$x]; my $tempLabel = $labs->Label(-text =>"$field[$x]", -anchor => +'w'); $labs->put($row, $x, $tempLabel); } $row += 1; #} } } sub stop{ exit; } __DATA__ these:lines are:the:lines that:you are:looking:at

Alternatively, you could get all the data you want to print in an array or other data structure, and use a text based approach to alignment (eg see 'padding with spaces' here: Using (s)printf())

If you meant something else, let me know and I'll try again...

Replies are listed 'Best First'.
Re^4: Multiple Rows
by PilotinControl (Pilgrim) on Oct 05, 2013 at 21:04 UTC

    do not really need the scroll text bars...all is needed is to search the host file and have a header with the results posted below:
    IP ADDRESS | PORT | TCP
    192.168.1.1

    Thats more like the out put I am seeking thanks.

      This will remove the scrollbars:

      #!/usr/bin/perl use strict; use warnings; use Tk; use Tk::ROText; use Tk::Table; my $hdb; my $window = MainWindow->new; $window->title("Host Report"); my $labs = $window->Table(-columns => 3, -fixedrows => 6, -fixedcolumn +s => 4, -rows => 5)->pack(-side => 'bottom'); $labs -> put (1, 1, "Results"); $window->Entry(-textvariable => \$hdb )->pack; $window->Button(-text => "Go", -command => \&host )->pack; $window->Button(-text => "Quit", -command => \&stop )->pack; MainLoop; sub host { #open (FH, "<", "host.txt"); my $row = 2; my $col = 0; my $x = 0; my @lines = <DATA>; print STDERR "@lines\n\n"; #close FH; foreach my $hdb2 (@lines) { chomp $hdb2; my @field = split(':',$hdb2); #if ($field[0] =~ /(?<![\w-])$hdb(?![\w-])/i) { for ($x=0; $x <=2; $x += 1) { $field[$x] = '' unless defined $field[$x]; my $tempLabel = $labs->Label(-text =>"$field[$x]", -anchor => +'w'); $labs->put($row, $x, $tempLabel); } $row += 1; #} } } sub stop{ exit; } __DATA__ these:lines are:the:lines that:you are:looking:at

      I hope that helps.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1056927]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others perusing the Monastery: (5)
As of 2024-04-19 13:34 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found