Top 5
cemiller
chris at dprogramming.com
Fri Oct 10 10:17:48 PDT 2008
>>> http://www.dprogramming.com/mtext.php
>>>
>>> Nearly as efficient as regular strings & same memory footprint as the
>>> type of the lagest character within (i.e. if it contains only ascii, 8
>>> bits/char. If it contains things representable in UTF-16, 16 bits a
>>> character. If it contains cuneoform, 32 bits per char).
>> Looks interesting. I've downloaded it. I'll give it a whirl and let
>> you know what I think. But, upon first glance, you definitely need some
>> example code and a tutorial. Right now, I don't really know where to
>> start.
>> --benji
>
> I totally agree it needs more docs. I didn't write it; Chris Miller gets
> that credit.
I tried to make it work like arrays (strings) as much as possible. It has
.length, concat operators, slicing, and other utility functions.
The documentation is available at:
http://www.dprogramming.com/docs/mtext/mtext.html
Here's some older examples from the unittest:
mstring s = mstring("foo"c);
assert(s == "foo"c);
assert(s.startsWith("f"c));
assert(s.startsWith("fo"w));
assert(s.startsWith("foo"c));
assert(!s.startsWith("fooo"c));
assert(!s.startsWith("F"c));
assert(s.startsWith("F"c, true));
assert(!s.startsWith("E"c, true));
assert(s.endsWith("o"c));
assert(s.endsWith("oo"d));
assert(s.endsWith("foo"c));
assert(!s.endsWith("fooo"c));
assert(!s.endsWith("ooo"c));
assert(s.endsWith("O"c, true));
assert(!s.endsWith("P"c, true));
int i;
s = mstring("The quick brown fox jumped over the lazy dog."w);
i = s.find("Lazy"c, true);
assert(-1 != i);
assert(s[i .. i + 4] == "lazy"c);
i = s.find("Lazy"c, false);
assert(-1 == i);
i = s.find("."c, true);
assert(-1 != i);
i = s.find("dog."c, true);
assert(-1 != i);
wchar[] ws = "Arrrrr!";
assert(ws == mstring(ws));
assert(!(ws > mstring(ws)));
assert(!(ws < mstring(ws)));
assert(ws == mstring(ws)[0 .. ws.length]);
assert(!(ws > mstring(ws)[0 .. ws.length]));
assert(!(ws < mstring(ws)[0 .. ws.length]));
mstring s2;
s2 = s.dup;
assert(s.type != s2.type); // Compacted.
assert(s == s2); // Same value.
and with the newer opAssign,
import mtext;
void main()
{
mstring hi = "hello"c;
hi ~= ", world"c;
}
FAQ is on the main page: http://www.dprogramming.com/mtext.php
I'll try to add better examples soon.
- Chris Miller (cemiller)
More information about the Digitalmars-d
mailing list