The following bit of code is extracted from a larger chunk of code. It
basically just opens a file, gets each line and checks to see if a regex
is satisfied (or a series of regex's in a boolean equation, but in this
case it's a simple regex). The problem I find is that if the file that is
being checked is fairly large (in this case it's about 190K bytes) the
program eventually just stops under Win98 for no good reason. I haven't
yet tried it on any other platforms, I will try it on Win2000 soon.
I'm wondering if anybody else can try it under Win98 and let me know what
they get. Of course you'll have to change the file name that's being
opened and it should be a fairly large file. In the latest run that I did
of this, it got to iteration 191 and is just sitting there. Also, the
time between the messages being printed seems to be very non-deterministic
(sometimes up to a minute between reports, other times less than 20
seconds). I'm running 1.6.2 in case that matters, and I used the -d flag
for debug.
Here's the code:
####################################################
i = 0
while true do
i += 1
puts i
rptFile = "CYPsw00695.rpt" #a 190K text file
srchStr = "/Error/"
rpt_h = File.open rptFile
puts "after File.open #{rptFile}" if $DEBUG
puts "srchStr is: #{srchStr}" if $DEBUG
while rpt_h.gets do
#puts "while: #$_" if $DEBUG
if eval srchStr
failed = false
found = true
else
failed = true
break
end #if eval
end
rpt_h.close
end
###############end###############
Phil