Autor Beitrag
greg
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 119

Windows2000, WindowsXP
D5 Prof
BeitragVerfasst: Fr 07.10.05 17:05 
Hallo Delphi-Freunde,

es ist mir fast etwas peinlich, aber ich steh auf der Leitung. Vielleicht kann mich ja jemand grad runterschubsen.

Ich brauche eine Funktion, mit der ich den ASCII-Wert eines Zeichens ermittle, also im Prinzip die Umkehrung der Funktion CHR(x : Byte). Da ich die Funktion in der Delphi Hilfe nicht finden konnte, habe ich mir folgende Funktion geschrieben:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
function TForm1.ASC(cInput : Char) : Byte;
var i         : Byte;
begin
  Result := 0;
  for i := 1 to 255 do
  begin
    if cInput = Chr(i) then Result := i;
  end;
end;


Das jeweilige Zeichen ermittle ich aus einem String mittels Copy(sInput, Index, 1);
Daraufhin krieg ich die Meldung, dass String und Char nicht kompatibel sind. Schon klar, worin das Problem besteht, aber wie umschiffe ich die Klippe? Ich habe eigentlich keine Lust, in der Funktion auch noch zu prüfen, wie viele Zeichen übergeben werden ... sprich, wenn ich die Funktion auf einen String als Übergabewert umbaue, ob dann der String auch wirklich nur ein Zeichen lang ist. Das passt nämlich nicht mehr in die Ergebnismenge meiner Funktion.

Ich danke Euch im Voraus für Eure Lösungsvorschläge.

Gruß
Gregor


Moderiert von user profile iconGausi: Topic aus Sonstiges verschoben am Fr 07.10.2005 um 17:22
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8548
Erhaltene Danke: 477

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Fr 07.10.05 17:19 
Die Funktion ord kennst du aber, oder? Müsste nämlich eigentlich auch unter "siehe auch" in der Hilfe von chr zu finden sein.

_________________
We are, we were and will not be.
GTA-Place
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
EE-Regisseur
Beiträge: 5248
Erhaltene Danke: 2

WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
BeitragVerfasst: Fr 07.10.05 17:25 
Und sonst einfach mit MyString[X]; die Funktion aufrufen.
Dadurch übergibst du einen Char und zwar den an X. Stelle in MyString.

_________________
"Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
greg Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 119

Windows2000, WindowsXP
D5 Prof
BeitragVerfasst: Fr 07.10.05 17:38 
Ich danke Euch Beiden!

Das waren genau die richtigen Hinweise. Mit Ord hab ich es gestern versucht. Das Problem damit war auch die Inkompatibilität von Cahr und String. Damit ist MyString[x] ein sauguter Hinweis. Das wird sich sicher tief in meine Hirnwindungen einbrennen. Danke!!