AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Namen einer Konstanten/Variable als String ausgeben
Thema durchsuchen
Ansicht
Themen-Optionen

Namen einer Konstanten/Variable als String ausgeben

Ein Thema von smallsmoker · begonnen am 25. Sep 2008 · letzter Beitrag vom 25. Sep 2008
Antwort Antwort
Benutzerbild von smallsmoker
smallsmoker

Registriert seit: 12. Nov 2007
Ort: Duisburg
283 Beiträge
 
#1

Namen einer Konstanten/Variable als String ausgeben

  Alt 25. Sep 2008, 12:40
Hi,
ich habe in meinem programm ein paar Konstanten definiert:

Delphi-Quellcode:
const
  CMD_CHUNK = 5; // Piece of Data
  CMD_STOP = 6; // Data was send completely
  CMD_NICKNAME = 7; // new Nickname
nun möchte ich nicht den wert der konstante bspw.: CMD_CHUNK also inttostr(CMD_CHUNK) = '6' ausgeben sondern 'CMD_CHUNK'.
das könnte ich z.b so machen:

Delphi-Quellcode:
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;
(Log ist ein Tmemo)

aber ginge das nicht einfacher ?

mfg smallsmoker
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.746 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Namen einer Konstanten/Variable als String ausgeben

  Alt 25. Sep 2008, 13:07
Zitat von smallsmoker:
aber ginge das nicht einfacher ?
Klar. Entweder so
Delphi-Quellcode:
const
  cCmdNames: array[CMD_CHUNK..CMD_NICKNAME] of string = ('CMD_CHUNK', 'CMD_STOP', 'CMD_NICKNAME');

  Writeln(CMD_STOP, ': ', cCmdNames[CMD_STOP]);
oder du machst einen Aufzählungstypen aus den CMD_-Konstanten und benutzt GetEnumName.

Uli.
Uli Gerhardt
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.774 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Namen einer Konstanten/Variable als String ausgeben

  Alt 25. Sep 2008, 13:08
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
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von Dunkel
Dunkel

Registriert seit: 26. Mär 2007
Ort: Klingenstadt
541 Beiträge
 
Delphi 2007 Enterprise
 
#4

Re: Namen einer Konstanten/Variable als String ausgeben

  Alt 25. Sep 2008, 13:10
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 RTTI, persönlich würde ich aber davon abraten.

Deine Methode oder die von uligerhardt sind definitiv vorzuziehen.
Es ist zu wahr um schön zu sein...
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: Namen einer Konstanten/Variable als String ausgeben

  Alt 25. Sep 2008, 16:11
Zitat von Dunkel:
Es gibt zwar die RTTI, persönlich würde ich aber davon abraten.
Warum?

Aus softwaretechnischer Sicht ist ein Enum-Typ und die Verwendung von GetEnumName() das sauberste was man in diesem Fall tun kann.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Benutzerbild von smallsmoker
smallsmoker

Registriert seit: 12. Nov 2007
Ort: Duisburg
283 Beiträge
 
#6

Re: Namen einer Konstanten/Variable als String ausgeben

  Alt 25. Sep 2008, 17:41
danke für die tipps
ich habe es jetzt nach dieser anleitung gemacht:

LINK

mit ein bisschen typcasten ging dann auch alles.

mfg smallsmoker
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:07 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 by Thomas Breitkreuz