![]() |
|
|
google unix.com
|
|||||||
| Forums | Register | Forum Rules | Links | Albums | FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| Shell Programming and Scripting Post questions about KSH, CSH, SH, BASH, PERL, PHP, SED, AWK and OTHER shell scripts and shell scripting languages here. |
More UNIX and Linux Forum Topics You Might Find Helpful
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| what is /devices/pseudo/ ?? | wrapster | SUN Solaris | 3 | 03-20-2008 05:54 PM |
| pseudo: [ID 129642 kern.info] pseudo-device: vol0 | mndavies | SUN Solaris | 0 | 02-13-2008 10:21 PM |
| 2 way and 4 way Hardware Description | praveenr | AIX | 1 | 12-24-2007 03:12 PM |
| pseudo driver | areef4u | SCO | 1 | 08-04-2006 09:36 AM |
| Pseudo TTy on Sco | Rurki | UNIX for Dummies Questions & Answers | 1 | 08-21-2002 12:48 PM |
|
|
LinkBack | Thread Tools | Search this Thread | Rate Thread | Display Modes |
|
||||
|
Pseudo code or description
hi I need a Pseudo code or a description of what a program is saying from this spec and code: Just so i can understand how this solution was achieved, thanks here is the spec: Specifications are as follows:- The books records are stored in one csv file and the layout and the contents are contained in File 1. There are four categories of books: sports, computing, children's and horror. We should determine the category and then write a series of 3 records to the appropiate file. The files need to be created in the program and their names will be: children, horror, sports and computing. The format of four files is contained in File 2. Records which do not belong to any of the above categories should be printed to the screen as an error. The summary report should be displayed on the screen and will contain the following information: - Date - names of files created (including path name) - total number of boks processed - total value of books *************************** File 1 - CSV File sample ISBN, Title, Category, cost, NO of copies 978-0340681138, Five Get into TRouble (Famous Five), Enid Blyton, Childrens, 6, 3 978-0142301883, The Little Match Girl, Hans Christian Anderson, Childrens, 3, 2 978-0304921532, cell, Stephen King, Horror, 7, 1 978-0596100292, Unix in a Nutshell Scripting, Arnold Robbins, Computing, 17, 2 **************** File 2 - Format of output files ISBN: 978-0340681138 Author: Enid Blyton Title: Five Get into Trouble (Famous Five) And here is a model answer:: Code:
#!/usr/bin/perl
# classify_books.pl
my $csv_file = shift;
my %categories = ( 'childrens' => 'childrens_books.txt',
'horror' => 'horror_books.txt',
'sports ' => 'sports_books.txt',
'computing' => 'computing_books.txt');
my @childrens_file, @horror_file, @sports_file, @computing_file;
open(CSV_FILE, '<', $csv_file) or die "Failed to read file $csv_file : $! \n";
while (my $line = <CSV_FILE>) {
next unless ($line =~ m/^\d{3}-\d+,/);
my ($isbn, $title, $author, $category) = split(/,/, $line);
$title =~ s/^\s+//;
$author =~ s/^\s+//;
$category = lc($category);
$category =~ s/^\s+//;
unless (exists($categories{$category})) {
print STDERR "\nUndefined category $category for book $title by $author having ISBN $isbn \n";
next;
}
if ($category =~ m/childrens/) {
push(@childrens_file, "ISBN: $isbn\nAuthor: $author\nTitle: $title\n\n");
}
elsif ($category =~ m/horror/) {
push(@horror_file, "ISBN: $isbn\nAuthor: $author\nTitle: $title\n\n");
}
elsif ($category =~ m/sports/) {
push(@sports_file, "ISBN: $isbn\nAuthor: $author\nTitle: $title\n\n");
}
elsif ($category =~ m/computing/) {
push(@computing_file, "ISBN: $isbn\nAuthor: $author\nTitle: $title\n\n");
}
}
close(CSV_FILE);
if (@childrens_file) {
open (CHL_FILE, '>', $categories{'childrens'}) or die "Failed to write file $categories{'childrens'} : $! \n";
print CHL_FILE @childrens_file;
close (CHL_FILE);
}
if (@horror_file) {
open (CHL_FILE, '>', $categories{'horror'}) or die "Failed to write file $categories{'horror'} : $! \n";
print CHL_FILE @horror_file;
close (CHL_FILE);
}
if (@sports_file) {
open (CHL_FILE, '>', $categories{'sports'}) or die "Failed to write file $categories{'sports'} : $! \n";
print CHL_FILE @sports_file;
close (CHL_FILE);
}
if (@computing_file) {
open (CHL_FILE, '>', $categories{'computing'}) or die "Failed to write file $categories{'computing'} : $! \n";
print CHL_FILE @computing_file;
close (CHL_FILE);
}
__END__
Last edited by tayyabq8; 04-01-2009 at 08:33 AM.. Reason: Added code tags |
| Bookmarks |
| Thread Tools | Search this Thread |
| Display Modes | Rate This Thread |
|
|