Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - zuordnungsfunktion Buchstabe zu Zahl
michaelarban - Mo 26.07.10 16:26
Titel: zuordnungsfunktion Buchstabe zu Zahl
Hallo,
wie kann man am besten eine Funktion schreiben, die zu einem Buchstaben eine Zahl zurückliefert;
also
'a' --> 100
'b' --> 101
'c' --> 102
.
.
'z'--> 126
getInteger('c') --> liefert 102
Ich könnte es mit case machen, aber wäre zu aufwndig; gibt es einen einfachenere Weg?
Danke
Stundenplan - Mo 26.07.10 16:37
Hallo!
Ord('c'); gibt schon einen Wert zurück, nämlich 99. Du kannst ja einfach eine Konsante dazuaddieren, um "deine" Werte zu bekommen.
Grüße,
Stundenplan.
Georg08 - Mo 26.07.10 16:49
Kleiner Tipp:
ich würde noch überprüfen, ob es ein Buchstabe ist, sonst kommt auch beim leerzeichen eine Zahl oder bei Entf.
Also:
Delphi-Quelltext
1: 2: 3: 4: 5:
| function getInteger(c: Char): Integer; begin if not(c in ['a'..'z']) then exit; Result:= Ord(c)+3; end; |
bole - Mo 26.07.10 19:26
So würde ich das aber nicht machen... im Falle das es kein Buchstabe zwischen a und z ist ist der Rückgabewert der Funktion undefiniert!
Delphi-Quelltext
1: 2: 3: 4: 5:
| function TForm2.getInteger(c: char): Integer; begin if (c in ['a'..'z']) then Result:= Ord(c)+3; else Result:= -1; end; |
Der Aufrufer muss den Return Code abfragen, -1 = Fehler.
Gruss
Bole
jfheins - Mo 26.07.10 21:01
bole hat folgendes geschrieben : |
Der Aufrufer muss den Return Code abfragen, -1 = Fehler.
Gruss
Bole |
Also wenn angedacht ist, dass nur normale Kleinbuchstaben da hineinkommen, würde ich einfach eine Exception werfen ;)
michaelarban - Mo 26.07.10 21:38
ok. danke
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!