![]() |
Namen einer Konstanten/Variable als String ausgeben
Hi,
ich habe in meinem programm ein paar Konstanten definiert:
Delphi-Quellcode:
nun möchte ich nicht den wert der konstante bspw.: CMD_CHUNK also inttostr(CMD_CHUNK) = '6' ausgeben sondern 'CMD_CHUNK'.
const
CMD_CHUNK = 5; // Piece of Data CMD_STOP = 6; // Data was send completely CMD_NICKNAME = 7; // new Nickname das könnte ich z.b so machen:
Delphi-Quellcode:
(Log ist ein Tmemo)
case Konstante of
CMD_CHUNK: begin Log.Lines.Add('CMD_CHUNK'); end; CMD_STOP: begin Log.Lines.Add('CMD_STOP'); end; CMD_NICKNAME: begin Log.Lines.Add('CMD_NICKNAME'); end; end; aber ginge das nicht einfacher ? mfg smallsmoker |
Re: Namen einer Konstanten/Variable als String ausgeben
Zitat:
Delphi-Quellcode:
oder du machst einen Aufzählungstypen aus den CMD_-Konstanten und benutzt GetEnumName.
const
cCmdNames: array[CMD_CHUNK..CMD_NICKNAME] of string = ('CMD_CHUNK', 'CMD_STOP', 'CMD_NICKNAME'); Writeln(CMD_STOP, ': ', cCmdNames[CMD_STOP]); Uli. |
Re: Namen einer Konstanten/Variable als String ausgeben
Hallo,
da die Namen der Konstanten bei der Kompilation durch ihren Wert ersetzt werden, wird es nicht möglich sein einen Rückschluss auf ihren Namen zu ziehen. Es bleibt Dir also nichts anderes übrig es so oder ähnlich zu lösen wie Du es bereits getan hast. Grüße Klaus |
Re: Namen einer Konstanten/Variable als String ausgeben
Hallo!
Kurze und knappe Antwort: Nein! Variablen-Namen existieren im Kompilat so gesehen nicht mehr, in sofern kann man sie auch nicht ohne weiteres ausgeben lassen. Es gibt zwar die ![]() Deine Methode oder die von uligerhardt sind definitiv vorzuziehen. |
Re: Namen einer Konstanten/Variable als String ausgeben
Zitat:
Aus softwaretechnischer Sicht ist ein Enum-Typ und die Verwendung von GetEnumName() das sauberste was man in diesem Fall tun kann. |
Re: Namen einer Konstanten/Variable als String ausgeben
danke für die tipps :)
ich habe es jetzt nach dieser anleitung gemacht: ![]() mit ein bisschen typcasten ging dann auch alles. mfg smallsmoker |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:42 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz