Autor Beitrag
michaelarban
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 34



BeitragVerfasst: Mo 26.07.10 16:26 
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 128
Erhaltene Danke: 32

Win 7
Delphi 7 Pers., C# (VS 2010 Express)
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 155
Erhaltene Danke: 6

Win XP
Delphi 7.0 Personal
BeitragVerfasst: 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:
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 107
Erhaltene Danke: 15

win 10

BeitragVerfasst: 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!
ausblenden 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

_________________
ein programm macht nicht das was du willst sondern was du schreibst!
jfheins
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 918
Erhaltene Danke: 158

Win 10
VS 2013, VS2015
BeitragVerfasst: Mo 26.07.10 21:01 
user profile iconbole hat folgendes geschrieben Zum zitierten Posting springen:

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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 34



BeitragVerfasst: Mo 26.07.10 21:38 
ok. danke