Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Convert von string to TConvType
ardely - Mi 24.06.09 20:59
Titel: Convert von string to TConvType
Hallo,
Wie kann ich die entsprechende Nummer vom z.b duMeters erhalten.
mein problem lautet: ich leite in einen string sBase:= 'duMeters' und möchte gern die entsprechende nummer erhalten.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| Function GetConvert(sBase:string):double; var TFromA : TConvType; TToB : TConvType; begin TFromA := sBase; TToB := duKilometers; ... result := convert(aValue,TFromA ,TToB ) end; |
Welche Lösung können sie mir Vorschlagen, vielen Dank im voraus.
jaenicke - Mi 24.06.09 21:22
Da gibt es nichts Fertiges. Auch via RTTI wird das wohl nicht gehen (auch wenn ich da die Details nicht so gut kenne).
Vorschlag: (// EDIT: ungeeignet)
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| type TConvType = (duNone, duKilometers, duMeters);
function StrToConvType(AValue: String): TConvType; const ConvTypeStrings: array[TConvType] of String = ('duNone', 'duKilometers', 'duMeters'); var i: TConvType; begin Result := duNone; for i := Low(TConvType) to High(TConvType) do if ConvTypeStrings[i] = AValue then begin Result := i; Break; end; end; |
ardely - Mi 24.06.09 21:56
Sehr vielen dank für deine schnelle Antwort.
Ich bekomme einen Fehler wie dieses
'E2072 Number of elements (3) differs from declaration (65536)'
muss ich im array[TConvType], 65536 string definieren...
Delphi-Quelltext
1:
| ConvTypeStrings: array[TConvType] of String = ('duNone', 'duKilometers', 'duMeters'); |
Danke
Moderiert von
Narses: Delphi-Tags hinzugefügt
jaenicke - Mi 24.06.09 22:06
Jetzt habe ich mir das erst genauer angeschaut, es gibt bereits StrToConvUnit und DescriptionToConvType in der Unit ConvUtils, ebenso die umgekehrte Richtung. Ausprobiert habe ich das nicht, aber dem Quelltext nach sollte das das richtige sein.
(Ich kannte TConvType nicht weiter und war daher von einem normalen "kleinen" Typ ausgegangen, aber bei der Vielzahl der Werte und der Definition als normale Zahl geht das so wie ich oben angedacht hatte gar nicht sinnvoll.)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!