Solved

locate an entry and related information in the file

Posted on 1998-06-17
7
154 Views
Last Modified: 2010-03-04
Hello,
Does any one have an good idea  to implement following question in perl effectively.
suppose there is a file the format is:

metrics        range

entry1           0-12
entry2           0-56
entry3           0.2-13.4
....
....

when the program gets an entry name and its value from user(e.g. "entry2   24"),it can locate this entry and its range in the file.Then check if the given value is within range. and report "success" or "fail" to the user.
0
Comment
Question by:tian
  • 4
  • 3
7 Comments
 
LVL 6

Expert Comment

by:alamo
ID: 1207859
Before I give you some code, would you please confirm that this is not an assignment for any class? Posting class assignments is against EE rules.

(I haven't heard of any classes giving assignments in perl, but the nature of the problem and the way it's phrased is very assignment-like, and I am just making sure).

0
 

Author Comment

by:tian
ID: 1207860
It's difinitely not.
0
 

Author Comment

by:tian
ID: 1207861
It's difinitely not. In fact, I already implemented it:
read file one line at one time,then use "split" to parse it and commpare corresponding items with user input.....  
0
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 
LVL 6

Accepted Solution

by:
alamo earned 100 total points
ID: 1207862
Sorry about that then... here's my solution to it, based on the file format you posted.. if your solution is as good or better then just reject it and ask them to delete this question

open(IN, "<metrics.dta") || die("Open failed - $!\n");
while (<IN>) {
 chomp;
 # data format: <entryname>   <lowerbound>-<upperbound>
 if (/^([a-zA-Z0-9]+)\s+(-*[\d\.]+)-(-*[\d\.]+)\s*$/) {
  $lowerbound{$1}=$2;
  $upperbound{$1}=$3;
 }
 else {
  print "Bad line in metrics file, ignored: $_\n";
 }
}
close(IN);

Then the test routine:

sub TestMetric {
 my $value = pop;
 my $metric = pop;
 if (!exists $lowerbound{$metric}) {
  print "No metric '$metric' found\n";
 }
 elsif ($lowerbound{$metric} <= $value && $value <= $upperbound{$metric}) {
  print "true\n";
 }
 else {
  print "false\n";
 }
}

Hope this helps..
0
 

Author Comment

by:tian
ID: 1207863
thank you very much.
 But how about if metric user given is just part of a compound metric in the file.
for example:

metric_name       range
-----------------------------------
m1                       1~12
m3+m4                23~34
m7                    45~23
.......
what the user input is " (m3  3),(m1 19), (m4 23)..." and the program can make a report indicate the "false" or true" for each metric entry in the file
0
 

Author Comment

by:tian
ID: 1207864
Sould I post modified question again?
0
 
LVL 6

Expert Comment

by:alamo
ID: 1207865
I just now saw your comments... yes, the new question is a different than this one because the compound metrics means you have to save the inputs and loop through the metrics, calculating each one. All the code changes.

I can't take a look at it quite at this moment unfortunately, if the new question is still unanswered later I will answer it, in any event good luck!
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Remove Malware code from PHP file 6 74
Perl efficient DB Call 8 82
Excel to CSV conversion with specific columns 5 74
Union rows in array that have common elements 2 89
I've just discovered very important differences between Windows an Unix formats in Perl,at least 5.xx.. MOST IMPORTANT: Use Unix file format while saving Your script. otherwise it will have ^M s or smth likely weird in the EOL, Then DO NOT use m…
There are many situations when we need to display the data in sorted order. For example: Student details by name or by rank or by total marks etc. If you are working on data driven based projects then you will use sorting techniques very frequently.…
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…
Migrating to Microsoft Office 365 is becoming increasingly popular for organizations both large and small. If you have made the leap to Microsoft’s cloud platform, you know that you will need to create a corporate email signature for your Office 365…

863 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

20 Experts available now in Live!

Get 1:1 Help Now