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

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

by baku (Scribe)
on Mar 12, 2001 at 23:23 UTC ( #63915=note: print w/ replies, xml ) Need Help??


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

What have you got so far?

It's hard for us to help you without seeing the current code.


Comment on Re: How do you store a line of info from a file that you later need to sort?
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:47 UTC
    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!!!

    Edit 2001-03-12 by tye to add <code> tags

      Might wanna use a <code> tag to enclose your code to make it easier to read.

      It sounds to me like you should probably be using a database module to store and sort your information, and then using SQL to perform the sorts and output the data the way you'd like.

      DBI and DBD are perfect for these situations, and if you want to be able to open up the file and look at what the code is doing with your info, I'd suggest starting with DBD::CSV and working up from there. Cheers!

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
    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!!!

      ...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")
      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
Node Status?
node history
Node Type: note [id://63915]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others chilling in the Monastery: (7)
As of 2014-11-25 23:30 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My preferred Perl binaries come from:














    Results (160 votes), past polls