Yves Goergen <[EMAIL PROTECTED]> wrote:
> On 22.06.2007 17:48 CE(S)T, Yves Goergen wrote:
> > Match m1 = Regex.Match(param1, "^([0-9]+)");
> > if (m1.Success)
> > {
> > Match m2 = Regex.Match(param2, "^([0-9]+)");
> > if (m2.Success)
> > {
> > int cmpNum = int.Parse(m1.Groups[1].Value) -
> > int.Parse(m2.Groups[1].Value);
> > if (cmpNum != 0) return cmpNum;
> > }
> > }
> > return String.Compare(param1, param2, true);
>
> Oh, well, I just realised that this will only sort numbers "naturally"
> at the beginning of strings, but not in the middle or at the end. It
> will be a bit more complex to do that. Maybe I find a sort/compare
> algorithm for it. But at least I know now that it's easy to use. :)
>
Check out the "sortStrCmp()" function in older versions of
SQLite version 2 in the util.c source file. See, for example,
http://www.sqlite.org/cvstrac/fileview?f=sqlite/src/util.c&v=1.42
I think the sortStrCmp() function does what you are after.
--
D. Richard Hipp <[EMAIL PROTECTED]>
-----------------------------------------------------------------------------
To unsubscribe, send email to [EMAIL PROTECTED]
-----------------------------------------------------------------------------