Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
String parsing performance issue
Message
From
24/06/2001 01:52:42
Cetin Basoz
Engineerica Inc.
Izmir, Turkey
 
 
To
18/05/2001 16:46:56
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Miscellaneous
Thread ID:
00508983
Message ID:
00522861
Views:
10
>I'm working on a project where I need to shred a string (ala shredding and XML string) into a set of tables. The string is passed to me by a call to an *.OCX. The typical length of the string is 43K+ bytes. The string structure looks like this:
>
>Data-Pair /pair delimiter/ Data-Pair /pair delimiter/ etc.
>There are additional delimiters inside each data-pair. Essentially a data-pair consists of a delimited string that defines the schema and also separates the schema from the actual value. A Data-Pair ends up looking something like this:
>Grand-ParentField/Delimiter/ParentField/Delimiter/Field/Value Delimiter/Value.
>
>My "parsing" engine works, but it's very slow. (About 2-3 seconds per string on a PII 300 Mhz notebook.) I need to get down to sub-second times without simply buying a faster notebook. I'm working on enhancements to make the string shorter. But I'm also looking for a way to more efficiently pass through the string as I shred it. That's what this post is for. So far the most efficient method of parsing the string is this:
>
>Do While .T.
>DataPair = SubString( LongString, 1, At( , LongString )- 1 )
>* Parsing code goes here
>LongString = SubString( LongString, At( , LongString ) + 1 )
>If Len( LongString ) = 0
> Exit
>EndIf
>EndDo
>
>I've tried NextWord from foxtools, ( I'm running VFP 6 ) but it's actually slower than this approach is.
>
>Ideas anyone on a better way to work my way through the string?

Kenneth,
Before saying anything more I wanted to verify a thing. Am I reading it wrong or is it really 2-3secs for 43*1024 bytes ? or was it 43 Mb ?
If 43+K not 43+Mb you're too slow. If 43+Mb then you're already much faster than me.
Nextword function and substr() are slow but 2-3 secs for 43K ? Seems like I'm reading it wrong.
PS:As another side note XML style strings could be parsed with ADO.
Cetin
Çetin Basöz

The way to Go
Flutter - For mobile, web and desktop.
World's most advanced open source relational database.
.Net for foxheads - Blog (main)
FoxSharp - Blog (mirror)
Welcome to FoxyClasses

LinqPad - C#,VB,F#,SQL,eSQL ... scratchpad
Previous
Reply
Map
View

Click here to load this message in the networking platform