Noting Thaddy's comment that something like this should have no place in the language: I've got reservations, but it's undeniably useful when writing command parsers etc.
Indeed. Modifying a routine with lots of "if...then...else"s is a nightmare. A "case string of" would remove a level of ifs and would also make the code easier to be read and modified.
Case lowercase(trim(stringvariable)) of
'string1':
begin
//lots of if...then if....else..if...then...else...else;
end;
'string2':
begin
//lots of if...then if....else..if...then...else...else;
end;
...
'string100':
begin
//lots of if...then if....else..if...then...else...else;
end;
else
//lots of if...then if....else..if...then...else...else;
end;
Moving the chain of if...then...elses code in a distinctive chainofifthenelses.inc include file is of little help.
Adding libraries to the executable and dynamically calling function names based on the string value is of little help because it complicates things in other parts of the code.