AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Typ in String umwandeln

Offene Frage von "Codewalker"
Ein Thema von Baeuerle · begonnen am 29. Mai 2008 · letzter Beitrag vom 15. Nov 2009
Antwort Antwort
Seite 1 von 2  1 2      
Baeuerle

Registriert seit: 17. Mär 2005
Ort: Ettenheim
283 Beiträge
 
Delphi 2005 Professional
 
#1

Typ in String umwandeln

  Alt 29. Mai 2008, 15:16
hallo,

ich habe folgenden typ und möchte diesen nun in einen string konvertieren (OHNE case) damit ich diesen in eine XML Datei schreiben kann.

Und wie lese ich das wieder aus wenn ich einen String habe der x den entsprechenden Wert zuweisen soll???

Delphi-Quellcode:
TFilterKinds =
    (ftNone, ftInclusive, ftExclusive);

var x: TFilterKinds;
// so soll es nicht sein da zu viel code
case x of
 ftnone: Write('bla');
 ftInclusive: Write('bla 1');
 ftExclusive: Write('bla 2');
 end;
// So irgendwie dachte ich mir das
write(x);
thx
  Mit Zitat antworten Zitat
Benutzerbild von FAlter
FAlter

Registriert seit: 21. Jul 2004
Ort: Ostfildern
1.095 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#2

Re: Typ in String umwandeln

  Alt 29. Mai 2008, 15:20
Hi,

die Umwandlung geht auch über eine Array-Konstante. Zurück wirds wohl nur über If-Then gehen.

Delphi-Quellcode:
type
  TMyType = (myA, myB, myC);

const
  MyTypeToStr: array[myA..myC] of String = ('myA', 'myB', 'myC');

var
  X: TMyType;

...

write(MyTypeToStr[X]));
Mfg
FAlter
Felix Alter
Japanurlaub 2015
  Mit Zitat antworten Zitat
Baeuerle

Registriert seit: 17. Mär 2005
Ort: Ettenheim
283 Beiträge
 
Delphi 2005 Professional
 
#3

Re: Typ in String umwandeln

  Alt 29. Mai 2008, 15:22
warum geht das ganze z.b. mit IXMLNode.NodeValue = OleVariant

Die kann beliebige werte annehmen und auch wieder zuweisen
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

Re: Typ in String umwandeln

  Alt 29. Mai 2008, 15:28
Hi,

Ich glaube du kannst diese Strings mit der RTTI herausbekommen. Wie genau, weiß ich aber auch nicht auswendig.

Gruß
Neutral General
Michael
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Typ in String umwandeln

  Alt 29. Mai 2008, 15:32
In diesem Fall ist die Unit TypInfo dein Freund, insbesondere die Funktionen GetEnumName und GetEnumValue.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#6

Re: Typ in String umwandeln

  Alt 29. Mai 2008, 15:48
HI,

ansonsten kannst du den aktuellen Wert mit Ord() erhalten. Wie du aus dem Integer wieder deinen Typ bekommst, weiß ich nicht. Das kannst du aber mit Case oder Inc/Dec versuchen.

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Benutzerbild von FAlter
FAlter

Registriert seit: 21. Jul 2004
Ort: Ostfildern
1.095 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#7

Re: Typ in String umwandeln

  Alt 29. Mai 2008, 15:51
Hi,

Zitat von rollstuhlfahrer:
Wie du aus dem Integer wieder deinen Typ bekommst, weiß ich nicht.
Einfach ein Typecast. Größe beachten! Ord nimmt einem diese Arbeit ab, entspricht Typecast nach Byte/Word/Integer, je nach Größe des Typs.

Mfg
FAlter
Felix Alter
Japanurlaub 2015
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#8

Re: Typ in String umwandeln

  Alt 29. Mai 2008, 15:55
Zitat von FAlter:
Hi,

Zitat von rollstuhlfahrer:
Wie du aus dem Integer wieder deinen Typ bekommst, weiß ich nicht.
Einfach ein Typecast. Größe beachten! Ord nimmt einem diese Arbeit ab, entspricht Typecast nach Byte/Word/Integer, je nach Größe des Typs.

Mfg
FAlter
Wenn ich mich richtig entsinne sind alle ordinalen Typen nur ein Byte groß. Von daher weiß ich nicht warum Ord irgendwann ein Word oder einen Integer zurückgeben sollte
Michael
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#9

Re: Typ in String umwandeln

  Alt 29. Mai 2008, 15:58
Zitat von Neutral General:
Wenn ich mich richtig entsinne sind alle ordinalen Typen nur ein Byte groß. Von daher weiß ich nicht warum Ord irgendwann ein Word oder einen Integer zurückgeben sollte
Nein, Aufzählungen sind bei Delphi so groß wie nötig, können auch grösser werden. Diese Eigenart ist vor allem bei Mischprojekten in den Studios (BDS, RAD) wichtig, da dort dies zu Problemen führt. Daher gibt es dort explizit die Einstellungen der Enum-Größen in den Delphi Compileroptionen (bzw. $Z1, $Z2, $Z4).
  Mit Zitat antworten Zitat
Benutzerbild von FAlter
FAlter

Registriert seit: 21. Jul 2004
Ort: Ostfildern
1.095 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#10

Re: Typ in String umwandeln

  Alt 29. Mai 2008, 15:59
Hi,

wenn der Typ mehr als 256 verschiedene Elemente beinhaltet, ist er größer als ein Byte. Das ist allerdings äußerst selten der Fall.

Bei Mengen (set) reichen dagegen schon mehr als acht Elemente. Das kommt öfters vor.

Mfg
FAlter
Felix Alter
Japanurlaub 2015
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 16:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz