RE: Please help: Out of Memory

2002-11-01 Thread Bullock, Howard A.
I have been trying desperately to help this individual but the data is a
mess and requirement continues to change. The $/ was set based on data I
received. Then I am told of this memory error. When I ask if the data format
was the same, I was told yes. After receiving a chunk of the file with which
the memory error occurred, I saw the file/record format was completely
different. The change in $/ is the main issue that caused the memory issue.
It can be changed, but the only other end of record indicator that seems
important is @F and it was seen to repeat multiple times without the rest
of the record. I instructed Debi to get a better handle on the data
structure so the code could be properly adjusted.

Howard A. Bullock
Global IT Infrastructure
717-810-3584


-Original Message-
From: Carl Jolley [mailto:cjolley;iac.net] 
Sent: Thursday, October 31, 2002 11:25 PM
To: Mohanty, Debi (MED, TCS)
Cc: [EMAIL PROTECTED]; Bullock, Howard A.
Subject: Re: Please help: Out of Memory

On Thu, 31 Oct 2002, Mohanty, Debi (MED, TCS) wrote:

 Hi Howard,
   I tried to run the program with my 305MB file, but I got the
 error saying Out Of memory.

 The program I am using is

 $/ = '@F' . chr(0x0D) . chr(0x0A) . chr(0x0D) . chr(0x0A);
 open (INFILE, input.dat) || die failed!;
 binmode INFILE;
 while (INFILE)
 {
   $_ =~ /^(\w+)(.*?)\+A/s;
   $RecordNo = $1;
   $RecordNo = substr($RecordNo,1,8);
   #print $RecordNo\t;
   $OtherStuff = $2;
   $OtherStuff =~ s/\r\n/\EOL\/sg;
   #print $OtherStuff\n;

   foreach $Letter (split(//,ABCDEF))

   {
   $_ =~ /\+$Letter(.*?)\@$Letter/s;
   $$Letter = $1;
   $$Letter =~ s/\r\n/\EOL\/sg;
   $$Letter=~s/\+g//g; # GET RID OF +g
   $$Letter=~s/\@g/\EOL\/g;  # TURN @g INTO EOL
   $$Letter=~s/\n/\EOL\/g;   # CHANGE NEWLINES INTO
 EOL
   #print $$Letter\t;

   }
   #print \n;
 }
 close INFILE;


Does your end-of-line sequence( the 6 character string you assigned
to $/) occur anywhere in your file? If not, the first INFILE operation
will try to read in 305MB of data into memory.

 [EMAIL PROTECTED] Carl Jolley
 All opinions are my own and not necessarily those of my employer 
___
Perl-Win32-Users mailing list
[EMAIL PROTECTED]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs



Re: Please help: Out of Memory

2002-10-31 Thread Carl Jolley
On Thu, 31 Oct 2002, Mohanty, Debi (MED, TCS) wrote:

 Hi Howard,
   I tried to run the program with my 305MB file, but I got the
 error saying Out Of memory.

 The program I am using is

 $/ = '@F' . chr(0x0D) . chr(0x0A) . chr(0x0D) . chr(0x0A);
 open (INFILE, input.dat) || die failed!;
 binmode INFILE;
 while (INFILE)
 {
   $_ =~ /^(\w+)(.*?)\+A/s;
   $RecordNo = $1;
   $RecordNo = substr($RecordNo,1,8);
   #print $RecordNo\t;
   $OtherStuff = $2;
   $OtherStuff =~ s/\r\n/\EOL\/sg;
   #print $OtherStuff\n;

   foreach $Letter (split(//,ABCDEF))

   {
   $_ =~ /\+$Letter(.*?)\@$Letter/s;
   $$Letter = $1;
   $$Letter =~ s/\r\n/\EOL\/sg;
   $$Letter=~s/\+g//g; # GET RID OF +g
   $$Letter=~s/\@g/\EOL\/g;  # TURN @g INTO EOL
   $$Letter=~s/\n/\EOL\/g;   # CHANGE NEWLINES INTO
 EOL
   #print $$Letter\t;

   }
   #print \n;
 }
 close INFILE;


Does your end-of-line sequence( the 6 character string you assigned
to $/) occur anywhere in your file? If not, the first INFILE operation
will try to read in 305MB of data into memory.

 [EMAIL PROTECTED] Carl Jolley
 All opinions are my own and not necessarily those of my employer 

___
Perl-Win32-Users mailing list
[EMAIL PROTECTED]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs