Newbie question: block read inputs to regex
I'm using regex_grep() to search through file contents for matches. I want to read the file in blocks to keep memory use down for large files. What I want to know is whether there is some way of adding the next block of memory to the grep where the last one left off. The best solution I can come up with is using some sort of double-buffering scheme, but that would take an awful lot of memory copies and searching some text multiple times. Both things I would prefer to avoid. What can I do? --Brendan
At 03:52 PM 12/9/2003, annirak@shaw.ca wrote:
I'm using regex_grep() to search through file contents for matches. I want to read the file in blocks to keep memory use down for large files. What I want to know is whether there is some way of adding the next block of memory to the grep where the last one left off.
I'm not a regex expert, but I think the purpose of the match_flag_type::match_partial flag is to handle exactly the situation you describe. See http://www.boost.org/libs/regex/template_class_ref.htm#partial_matches (Note that partial matches will get their own docs page in the upcoming 1.31.0 release, so the above URL will change.) --Beman
I'm using regex_grep() to search through file contents for matches. I want to read the file in blocks to keep memory use down for large files. What I want to know is whether there is some way of adding the next block of memory to the grep where the last one left off.
The best solution I can come up with is using some sort of double-buffering scheme, but that would take an awful lot of memory copies and searching some text multiple times. Both things I would prefer to avoid.
What can I do?
Have you looked at the partial match examples - there is one that searches a file in chunks. John.
participants (3)
-
annirak@shaw.ca
-
Beman Dawes
-
John Maddock