<div>Hi,</div>
<div>&nbsp;</div>
<div>I don&#39;t know if it is relevant for your particular situation, but your discussion about</div>
<div>keeping track of multiple possible matches reminded me of something I read a long</div>
<div>time ago.</div>
<div>&nbsp;</div>
<div>Check out the AGREP alrorithm for matching multiple patterns concurrently.&nbsp; In </div>
<div>particular it has an efficient implementation of keeping track of multiple possible </div>
<div>matches.</div>
<div>&nbsp;</div>
<div>Just google for AGREP algorithm, or check out here:</div>
<div><a href="http://webglimpse.net/pubs/TR94-17.pdf">http://webglimpse.net/pubs/TR94-17.pdf</a></div>
<div>&nbsp;</div>
<div>Hope this helps, and sorry if it&#39;s not relevant.</div>
<div>&nbsp;</div>
<div>---</div>
<div>Adar Wesley<br><br>&nbsp;</div>
<div><span class="gmail_quote">On 11/6/07, <b class="gmail_sendername">Michael Mattess</b> &lt;<a href="mailto:MichaelMattess@rauland.com.au">MichaelMattess@rauland.com.au</a>&gt; wrote:</span>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">
<div>
<div dir="ltr">
<div dir="ltr"><font face="Arial" color="#000000" size="2">
<p style="MARGIN: 0cm 0cm 0pt"><font face="Times New Roman" size="3">Hello Miguel,</font></p>
<p style="MARGIN: 0cm 0cm 0pt"><font face="Times New Roman" size="3">&nbsp;</font></p>
<p style="MARGIN: 0cm 0cm 0pt"><font face="Times New Roman" size="3">Yes using the ReadTo function does make the most sense as it is a special case of the operation.</font></p>
<p style="MARGIN: 0cm 0cm 0pt"><font face="Times New Roman" size="3">&nbsp;</font></p>
<p style="MARGIN: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">I had a look at the ReadTo function and I think it is broken.<span>&nbsp; </span>It assumes that it is in the initial state (IE current is 0) when it encounters the beginning of the string it is reading to.
<span>&nbsp; </span>So if we are reading to "ababZ" and the input is "abababZfoo" it will read past the "ababZ".<span>&nbsp; </span></font></font></p>
<p style="MARGIN: 0cm 0cm 0pt"><font face="Times New Roman" size="3">&nbsp;</font></p>
<p style="MARGIN: 0cm 0cm 0pt"><font face="Times New Roman" size="3">It was because of this that I put the 'state-driven' approach into the too hard / too complex basket when I wrote my initial function.<span>&nbsp; </span>But thinking about it further the ReadTo function could be extended to keep multiple states (ie a list of 'current' offsets).
<span>&nbsp; </span>One for each time a potential beginning of the string we are looking for is encountered.<span>&nbsp;&nbsp;I have&nbsp;attached a file with such an extended ReadTo function.</span></font></p>
<p style="MARGIN: 0cm 0cm 0pt"><font face="Times New Roman" size="3"><span></span></font>&nbsp;</p>
<p style="MARGIN: 0cm 0cm 0pt"><font face="Times New Roman" size="3"><span></span></font><font face="Times New Roman" size="3">&nbsp;Let me know your thought.</font></p>
<p style="MARGIN: 0cm 0cm 0pt"><font face="Times New Roman" size="3"></font>&nbsp;</p>
<p style="MARGIN: 0cm 0cm 0pt"><font face="Times New Roman" size="3">Regards</font></p>
<p style="MARGIN: 0cm 0cm 0pt"><font face="Times New Roman" size="3">Michael</font></p>
<p style="MARGIN: 0cm 0cm 0pt"><font face="Times New Roman" size="3">&nbsp;</font></p>
<p style="MARGIN: 0cm 0cm 0pt"><font face="Times New Roman" size="3">&nbsp;</font></p></font></div></div>
<div dir="ltr"><br>
<hr>
<font face="Tahoma" size="2"><b>From:</b> Miguel de Icaza [mailto:<a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:miguel@novell.com" target="_blank">miguel@novell.com</a>]<br><b>Sent:</b> Tue 06.11.2007
 02:06<br><b>To:</b> Michael Mattess<br><b>Cc:</b> <a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:mono-devel-list@lists.ximian.com" target="_blank">mono-devel-list@lists.ximian.com</a><br><b>Subject:
</b> Re: [Mono-dev] Patch for System.IO.Ports.SerialPort ReadLinefunction<br></font><br>&nbsp;</div><span class="q">
<div>
<p><font size="2">Hello,<br><br>&nbsp;&nbsp;&nbsp; My ReadLine routine is broken, it did not append data that was only<br>partially part of the ReadLine.&nbsp;&nbsp; While I was fixing it, I noticed that<br>we already have a routine that did this correctly (ReadTo).
<br><br>&nbsp;&nbsp;&nbsp; So am going to just change the code to be:<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ReadTo (new_line).<br><br>Miguel.<br></font></p></div></span></div><br>_______________________________________________<br>Mono-devel-list mailing list<br>
<a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:Mono-devel-list@lists.ximian.com">Mono-devel-list@lists.ximian.com</a><br><a onclick="return top.js.OpenExtLink(window,event,this)" href="http://lists.ximian.com/mailman/listinfo/mono-devel-list" target="_blank">
http://lists.ximian.com/mailman/listinfo/mono-devel-list</a><br><br><br clear="all"></blockquote></div><br><br clear="all"><br>-- <br>---<br>Adar Wesley