![]() |
Typ in String umwandeln
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:
thx
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); |
Re: Typ in String umwandeln
Hi,
die Umwandlung geht auch über eine Array-Konstante. Zurück wirds wohl nur über If-Then gehen.
Delphi-Quellcode:
Mfg
type
TMyType = (myA, myB, myC); const MyTypeToStr: array[myA..myC] of String = ('myA', 'myB', 'myC'); var X: TMyType; ... write(MyTypeToStr[X])); FAlter |
Re: Typ in String umwandeln
warum geht das ganze z.b. mit IXMLNode.NodeValue = OleVariant
Die kann beliebige werte annehmen und auch wieder zuweisen |
Re: Typ in String umwandeln
Hi,
Ich glaube du kannst diese Strings mit der RTTI herausbekommen. Wie genau, weiß ich aber auch nicht auswendig. Gruß Neutral General |
Re: Typ in String umwandeln
In diesem Fall ist die Unit TypInfo dein Freund, insbesondere die Funktionen GetEnumName und GetEnumValue.
|
Re: Typ in String umwandeln
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 |
Re: Typ in String umwandeln
Hi,
Zitat:
Mfg FAlter |
Re: Typ in String umwandeln
Zitat:
|
Re: Typ in String umwandeln
Zitat:
|
Re: Typ in String umwandeln
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 |
Re: Typ in String umwandeln
:gruebel:
Also bei mir meckert der Compiler wenn ich z.B. sowas wie
Delphi-Quellcode:
schreibe...
TTest = Set of Word;
Habe aber auch Delphi7.. Vielleicht hängts daran... Gruß Neutral General |
Re: Typ in String umwandeln
Ein Set kann maximal 64 Elemente haben, da er maximal 8 Bytes gross sein kann. Ansonsten habe ich, FAlter und der Threadersteller von Aufzählungen geschrieben.
|
Re: Typ in String umwandeln
Oh ja ich hatte mich gerade vertan -.- Hatte irgendwie was falsches im Kopf...
|
Re: Typ in String umwandeln
Zitat:
Mein Code:
Delphi-Quellcode:
Der Compiler mosert: [DCC Fehler] SimDevice.pas(50): E2134 Typ 'TValueType' besitzt keine Typinformation
TValueType = (vtTemperature = 1, vtHumidity = 2);
{ ... } Assert(False, 'Cannot return value of type' + GetEnumName(System.TypeInfo(TValueType), Ord(ValueType))); Hat jemand eine Idee woran es liegen könnte? |
Re: Typ in String umwandeln
Das ist kürzlich mal bei Stackoverflow aufgetaucht. Wenn du explizit Integer-Werte vergibst, mag der Compiler keine Typinformation mehr generieren. Sehr lästig.
|
Re: Typ in String umwandeln
Danke, das hätte ich niemals gefunden :thumb: . Auf die konkreten Werte kann ich in diesem Fall verzichten ... ist aber trotzdem mehr als ärgerlich.
|
Re: Typ in String umwandeln
Dieses Problem ist auch hier schon länger bekannt.
![]() (einer der Threads) und auch die neue RTTI von D2010 hat immernoch dieses "Problem" :wall: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:08 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