1. Computing

Case statement that *accepts* string values

From , former About.com Guide

You've probably tried providing a Case statement with string type selector expression, to find out that it only takes ordinal types (which string is not).

The following function enables you to use the Case statement with string type variables:

~~~~~~~~~~~~~~~~~~~~~~~~~
function StringToCaseSelect
   (Selector : string;
CaseList: array of string): Integer;
var cnt: integer;
begin
   Result:=-1;
   for cnt:=0 to Length(CaseList)-1 do
begin
     if CompareText(Selector, CaseList[cnt]) = 0 then
     begin
       Result:=cnt;
       Break;
     end;
   end;
end;

{
Usage:

case StringToCaseSelect('Delphi',
      ['About','Borland','Delphi']) of
   0:ShowMessage('You''ve picked About') ;
   1:ShowMessage('You''ve picked Borland') ;
   2:ShowMessage('You''ve picked Delphi') ;
end;
}

~~~~~~~~~~~~~~~~~~~~~~~~~

Delphi tips navigator:
» How to calculate the date of Easter for a given year
« Making an application restart with Windows

©2013 About.com. All rights reserved.