Beefy Boxes and Bandwidth Generously Provided by pair Networks
Come for the quick hacks, stay for the epiphanies.
 
PerlMonks  

Re: Re: How do you store a line of info from a file that you later need to sort?

by Anonymous Monk
on Mar 12, 2001 at 23:51 UTC ( [id://63925]=note: print w/replies, xml ) Need Help??


in reply to Re: How do you store a line of info from a file that you later need to sort?
in thread How do you store a line of info from a file that you later need to sort?

I have asked the user to give a name of a file, the userid, and time. I need to sort through this file with the userid and time, keeping all information pertinent to that line, then later print the results in order of line. I don't have much. This is my first attempt:
#!/usr/bin/perl print "Please enter trace file name" $tracefilename = <STDIN>; chomp $tracefilename; print "Please enter agent extension" $agentextension = <STDIN>; chomp $agentextension; print "Please enter time" $time = <STDIN>; chomp $time; open (THATFILE, "$tracefilename") || die "cannot open $tracefilename: $!"; foreach $line (@lines) { # now I'm stuck!!!
  • Comment on Re: Re: How do you store a line of info from a file that you later need to sort?
  • Download Code

Replies are listed 'Best First'.
Re: Re: Re: How do you store a line of info from a file that you later need to sort?
by tye (Sage) on Mar 13, 2001 at 00:07 UTC

    ...and if you'd get a proper login for this site, then you could edit your own replies rather than duplicating them.

            - tye (but my friends call me "Tye")
Re: Re: Re: How do you store a line of info from a file that you later need to sort?
by dneedles (Sexton) on Mar 13, 2001 at 01:41 UTC
    Hello, Unfortunately your spec is still a little vague (or I am confused). I will fill in the blanks with a couple assumptions: 1. Assume the file lines have the format: time,user id, other_parms where time is a nice numeric that I can sort. 2. Assume you want to EXTRACT only info in that file with matching user id and time, sort them by TIME, and print them. 3. Later you want to print the EXTRACTED records by the order that you read them in. If so then I would add the following psudo code to your own::
    my ($line,$timestamp,$userid,$stuff); my %Seq; my %TimeStamp; my $i=1; while ( $line=<THATFILE> ) { # PARSE THE DATA LINE ($timestamp,$userid,seq,$params)=split(/,/,$line,4); # DETERMINE IF WE WANT THE INFO ON THIS LINE if ($userid=USERIDWEWANT) { #STORE TO PRINT OUT LATER BY SEQUENCE WE FOUND THEM $Seq{$i++}=$line; #STORE TO PRINT OUT LATER BY SEQUENCE WE FOUND THEM $TimeStamp($timestamp}=$line; } } #PRINT BY TIMESTAMP foreach $line (sort keys %TimeStamp) { print "$TimeStamp{$line}\n"; } #PRINT BY SEQUENCE foreach $line (sort keys %Seq) { print "$Seq{$line}\n"; }

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (4)
As of 2024-04-25 16:39 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found