A couple of folks asked, so here it is.
The scheme centers around pattern strings. A pattern string represents
one of any number of possible interpretations of a target string. A
pattern string consists of punctuation characters and the characters A
and 9 representing consecutive sequences of alphabetical characters or
digits. At initialization time, a hash table is generated containing
all possible legitimate target string patterns and respectiive rule codes.
At decode time, a target string is scanned constructing a) its pattern
string and b) a vector of <address, length> of all alphabetic or numeric
sequences found. Since the max length of a legitimate pattern and the
maximum number of possible sequences, these can be statically allocated.
Some sample string and corresponding patterns:
9/5/2013 9/9/9 with segments 9 5 2013
5.9.13 9.9.9 with segments 5 9 13
September 5, 2013 A9,9 with segments September 5 2013
After a target string is scanned the hash table is checked for a
matching pattern rule. If found, resulting the rule is used as the
argument for a case statement to apply the rule to the vector of segments.
There is usually a little more work to be done. For dates, for example,
it is necessary to validate day and month, look up alphabetic months,
and expand two digit years, etc.
------------------------------------------------------------------------------
Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
Discover the easy way to master current and previous Microsoft technologies
and advance your career. Get an incredible 1,500+ hours of step-by-step
tutorial videos with LearnDevNow. Subscribe today and save!
http://pubads.g.doubleclick.net/gampad/clk?id=58041391&iu=/4140/ostg.clktrk
Firebird-Devel mailing list, web interface at
https://lists.sourceforge.net/lists/listinfo/firebird-devel