[fpc-pascal] How can you convert an enum value to string?

silvioprog silvioprog at gmail.com
Sat Dec 13 03:50:37 CET 2014


Oops, sorry, <raw> tag on nabble platform cutted my code. :S

On Fri, Dec 12, 2014 at 11:46 PM, silvioprog <silvioprog at gmail.com> wrote:
>
> But if you want speed in your conversion, GetEnumName is more fast than
> WriteStr. :3


uses
  typinfo;

type
  tenum = (e1, e2, e3);

procedure TForm1.Button1Click(Sender: TObject);
const
  c = 10000000;
  m = 'hh:nn:ss:zzzz';
var
  i: integer;
  en: tenum;
  s, r: string;
  b, e: tdatetime;
begin
  en := e2;
  b := now;
  for i := 1 to c do
    writestr(s, en);
  e := now;
  r := formatdatetime(m, e - b);
  e := b;

  b := now;
  for i := 1 to c do
    getenumname(typeinfo(tenum), integer(en));
  e := now;

  r += ' - ' + formatdatetime(m, e - b);

  ShowMessage(r);
end;

Result:
>
> 00:00:04:336 - 00:00:01:407


-- 
Silvio Cl├ęcio
My public projects - github.com/silvioprog
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-pascal/attachments/20141212/22a28e33/attachment.html>


More information about the fpc-pascal mailing list