I am currently working on a section of my VB.NET project that needs to read out all the text lines in an EditControl and process them. I found that EditControl.CurrentLineText is very slow - about 2mS/line. I tested a 30 line test file with the following code:
For i = 1 to 100 'Do it 100 times to make timing easy For l = 1 to Editor.PhysicalLineCount Editor.CurrentLine = i Process(Editor.CurrentLineText) Next Next
With the Process() doing nothing, the above takes ~6 seconds, or 20mS per line.
I have found however that if I do this:
For i = 1 to 10000 'Do it 10000 times to make timing easy For l = 1 to Editor.PhysicalLineCount Process(GetLineText(i)) Next Next
It is about 100 times faster. In fact, I increased the loop count to 10,000 and got about the same 6 seconds total.
Posted in the hope it may help others :-)
SPLat Controls Pty Ltd http://splatco.com Ph +61 3 9773 5082 Fx +61 3 9773 5091 LinkedIn: http://au.linkedin.com/in/davidstoniergibson *** This email does not constitute professional advice ** Free newsletter http://splatco.com/control_matters/ Terms of sale: http://splatco.com/skb/2097.htm
ADAdministrator Syncfusion Team April 18, 2013 09:04 AM UTC
Oops. I should be processing line Ell, not Eye.
PAPaul Anderson S Syncfusion Team April 24, 2013 11:41 AM UTC
Thanks for your interest in Syncfusion products,
In EditControl the CurrentLineText is used for many operations. Hence when we use that it will take some time to process all the operations related to that when it is used. But GetLineText gets only the text of the given line and its not involved in any other operations and hence its execution is faster compared to CurrentLineText. Thanks for your update regarding this.