Hi Sudarsan,

Thank you very much for the help.
Leila

----- Original Message -----
From: "Sudarsan Raghavan" <[EMAIL PROTECTED]>
To: "Leila Lappin" <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>
Sent: Friday, May 24, 2002 12:34 AM
Subject: Re: deleting lines from a text file using index from another file


> Sudarsan Raghavan wrote:
>
> > >
> > > >
> > > > I need to do something, but being new to Perl I'm not sure it's
possible
> > > or how to do it.  I need to remove lines of information from a text
file
> > > based on information in another file. The first file contains
information
> > > about some business transactions, each line describing one
transaction.  The
> > > second file is a log file reporting errors occurred during some
processing
> > > done on the first file.  The log file identifies each transaction that
> > > failed by its line number in the transaction file. The following is a
sample
> > > of information in each file
> > > >
> > > > ---------- sample  log file data ----------
> > > > Line no: 1, Field no 5: , Field name: Amount
> > > > Contents: "L8G 4A7"
> > > > Error: Only digits and one point allowed
> > > > ------------------------------------------------
> > > > Sample transaction file data:
> > > >
> > > > "C1","MA00000000000025610","4111111111111111",...etc.
> > > > ------------------------------------------------------------
> > > >
> > > > I think I need to extract the line number from log file and use it
like an
> > > index to the transaction file. I've already done the first part
(extract the
> > > number)
> >
> > A good option is to form a hash with the numbers as the hash keys
> > For e.g. if the error log file reports the lines 1, 3, 23, 32 to have
failed
> > form a hash with keys 1, 3, 23, 32 and assign them a true value.
> >
> > > but don't know how to proceed from there.
> >
> > Loop through the transaction file
> > open (TRANSFILE, $your_transaction_file_name) or
> >     die "open failed on transaction file : $!\n";
> > open (TMPTRANSFILE, "> temp_trans.txt") or
> >     die "open failed in write mode for temp_trans.txt : $!\n";
> > while (<TRANSFILE>) {
> >     # $. will contain the current line being processed (perldoc perlvar)
>
> Sorry, that should be $. contains the current line number being processed
>
> >
> >     print TMPTRANSFILE unless ($err_line_nums{$.})
> >     #err_line_nums is the hash with the error line numbers as keys
> > }
> > close (TRANSFILE);
> > close (TMPTRANSFILE);
> > rename ($your_transaction_file_ name,
"$your_transaction_file_name.old");
> > #Backup your original file, unlink it if you don't want to
> > rename ("temp_trans.txt", $your_transaction_file_name);
>
>
> --
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to