Ja, sowas ist der einzige Weg, denn wo willst du den die nötigen Werte (Word und String) sonst herbekommen?
Also 'ne Liste mit den Strings und den zugehörigen Words brauchst du so, oder so.
Aber wie du diese Liste verwaltest, das ist 'ne andere Sache
- mit den IF's
- am Schnellsten ginge eine Art Hashverfahren
es gibt ja nur 'ne "geringe Anzahl an mölichen Werten und wenn es keine doppelten "Hash's" gibt, dann könnte man auch locker damit arbeiten ... also ein bestimmter Hash = ein bestimmes Word
- ein Array
- 'ne Datei, wo String und die Zahl drinsteht
...
Delphi-Quellcode:
Case MakeHash(ParamStr(1) of
123: Result := VK_A;
456: Result := VK_B;
789: Result := VK_C;
...
End;
Delphi-Quellcode:
Const X: Array[0..123] of Record
S: String;
W: Word;
End = (
(S: 'VK_A'; W: VK_A),
(S: 'VK_B'; W: VK_B),
(S: 'VK_C'; W: VK_C)
...
);
For i := 0 to High(X) do
If ParamStr(1) = X[i].S Then Result := X[i].W;
...