![]() |
AW: IOC-Code 2 Nationname und zurück
Zitat:
|
AW: IOC-Code 2 Nationname und zurück
Hi,
aber case geht doch nur bei Ordinaltypen, oder? LG, Frederic |
AW: IOC-Code 2 Nationname und zurück
Zitat:
Zurück in Delphi hast Recht. Am besten löst man die Aufgabe wie mkinzler schon gesagt mit ner DB oder XML Datei. Alles andere ist zu hartkodiert. |
AW: IOC-Code 2 Nationname und zurück
wie wäre es mit sowas
Delphi-Quellcode:
Gruß
function Uebersetzen(const inw:string[3]):string;
begin case longint(inw) of longint('ABC'):result:='abcdef' .. K-H |
AW: IOC-Code 2 Nationname und zurück
Delphi-Quellcode:
Der Grund ist, daß die ungenutzen Zeichen undefiniert und somit zufällig sind.
function Uebersetzen(const inw: String): String;
var S: String[3]; begin ZeroMemory(@S, SizeOf(S), 0); // s := #0#0#0; S := AnsiString(inv); case LongInt(S) of ... Womit die Integer nicht eindeutig sind, was schlecht ist, für den Vergleich. |
AW: IOC-Code 2 Nationname und zurück
Oder man nutzt die Funktion
Delphi-Quellcode:
. Damit kann man bequem ein case nutzen und das ganze ist auf Wunsch (IndexText <-> IndexStr) auch noch case-insensitive.
StrUtils.IndexText
Was die n-1 if's angeht: Würde bei sowas nicht die Compileroptimierung zuschlagen? Es dürfte imho durchaus erkennbar sein, dass im jeweiligen Scope nur ein Pfad erfolgreich ist und der Rest ignoriert werden kann. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:57 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