Xojo Developer Conference
25/27th April 2018 in Denver.
MBS Xojo Conference
6/7th September 2018 in Munich, Germany.

[ANN] Theo's String Stuff plugin 3.3 (Real Studio Plugins Mailinglist archive)

Back to the thread list
Previous thread: Carbon Plug in ?
Next thread: "namespace" (was Re: New Plugins-SDK available)

Re: Plugins website   -   Troy A. Dix
  [ANN] Theo's String Stuff plugin 3.3   -   Theodore H. Smith

[ANN] Theo's String Stuff plugin 3.3
Date: 11.06.02 02:10 (Tue, 11 Jun 2002 03:10:08 +0200)
From: Theodore H. Smith
Theo's String Stuff plugin 3.3 is available.

The product is now "Tip-ware". This means that if you use it,
you can give to me what you feel it has been worth to you. The
tip amount is not set. The user of my plugin chooses the amount
himself. All previous users of the String Stuff plugin are asked
to tip.

To tip, visit <www.elfdata.com/purchase.html>
To download, visit <www.elfdata.com/programmer/downloadindex.html>

Whats new:

* This version fixes many bugs in the UTF32 class, almost all
to do with the splitting functions, left, mid, range, right. The
UTF32.ReplaceAll method and the MSR class have been fixed also.

* Many slight speed ups are introduced.

* New String encoding functions are introduced. You can now
get and set the string encoding of any string, using
GetStringEncoding or SetStringEncoding. SetStringEncoding will
do a copy of the string, due to the way strings are implemented,
but it will be faster (and simpler!) than using a TextConverter.
This allows you to do away with the TextConverter work around,
making your projects simpler.

* UTF32 class produces RB string encoding hints. This means
that UTF32's method, "UTF8String" now is a very useful way to
get string data that RB understands for drawing into controls.

Full Description:


This is one of the "must have" kind of plugins, especially if
you are dealing with strings. It is industrial strength plugin;
extensively tested to be bug-free; designed to be super fast,
easy to use and flexible. Thats why it's used in many big


This plugin has a huge range of methods. Around 250 methods or
properties available! The overview is:

Unicode features - All Unicode functions you'll need and more.
111 functions or properties available amoungst the various
classes are devoted to Unicode. A super-set of RB string
functions and my string functions are available for Unicode.
Also contains conversion to/from UTF 8/16/32, endian swapping,
byte order mark detection and generation.

FastString - Append strings and Unicode objects to build up
string data, very fast! Can go thousands (or more) of times
faster than RB does. Its also easy to use. just call
.AppendString MyString

MemoryBlock extensions - Do searching on a MB, get Unicode
objects, get the address, do byte replacements etc.

MSR - Super-fast multiple search/replacement object. Even its
most complicated feature, entity replacements, can replace 1/2
GIGABYTE worth of pure numeric entities (&#60;&#x20; etc), in
around 20 seconds on a 350mhz Mac. Normal search/replace without
entities will be much much faster, even on 1/2 gigabyte.

General string features - FastReplaceAllB, FastInStrB,
FastInRevStrB, MidAscB, etc. MidAscB can go 9x faster than
AscB(midb()). A huge range of general string features is
available, for speeding up processing.

Character sets - Character sets are invaluable for general
parsing. This plugin has many charset functions. InCharSet,
OutCharSet, InRevCharSet, OutRevCharset. Also works on Unicode

String Encoding - Unicode objects that return UTF8, UTF16 and
UTF32 strings use RB "encodings" (a feature of RB) that RB
understands, for use with drawing and controls! You can now get
and set RB string encodings. Say you want to tell RB that a
string is UTF8, and you know it is UTF8, but RB doesn't. Call
"MyString = SetStringEncoding(MyString, kRBEncUTF8)" and RB will
know what to do with it. This is way faster, and way simpler,
than the only way RB has provided, which is passing the string
through a text encoding converter.

Functions are designed for optimal speed, low RAM use, low base
overhead ease of use and flexibility. For a flexibility example,
FastInStrB can search with a finish offset as well as a start
offset. This is not available in RB.

This plugin is extensively tested. Every single function is
repeatedly and variably tested in the demo project; often in
multiple ways. This plugin is used in heavy use industrial
strength applications. An extensive testing project comes with
the plugin.