Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - ordinale zahlen und integer


Luzifer - Mi 07.12.05 19:46
Titel: ordinale zahlen und integer
hi leutz

ich hab mal ne blöde(?) frage....

und zwar bekomme ich ja mit


Delphi-Quelltext
1:
ord('c')                    


relativ einfach nen rückgabewert, in diesem Fall "99".
selbst wenn ich diesen wert nun direkt in ein Array of Integer schreibe funzelt das noch wunderbar


Delphi-Quelltext
1:
<span class="inlineSyntax"><span class="codekey">Array</span>[i]:=Ord(<span class="codestring">'c'</span>);</span>                    


das prob tritt hier auf:


Delphi-Quelltext
1:
<span class="inlineSyntax"><span class="codekey">Array</span>[i]:=Ord(copy(<span class="codekey">String</span>,i+<span class="codenumber">1</span>,<span class="codenumber">1</span>));</span>                    


könnte das daran liegen dass es sich beim ersten mal um einen char handelt und beim zweiten mal um einen string?
oder liegt das daran dass aus einem mir unerfindlichen Grund Integer und ordinal nicht kompatibel sind?
die Fehlermeldung von delphi ist nämlich: [Fehler] Unit1.pas(53): Inkompatible Typen
sinnigerweise ohne genauere Angabe.......


F34r0fTh3D4rk - Mi 07.12.05 19:55


Delphi-Quelltext
1:
Ord(String[i+1])                    

ein char ist ein byte groß, integer kannst du also nicht direkt umwandeln 8)
du hast aber versucht einen string in einen ordinaltyp umzuwandeln, was aber nicht geht, da dieser bei einer länge von 1, nicht 1 byte groß ist, sondern 2, weil 0 terminiert, bei pchars mag das gehen ;)


Tilman - Mi 07.12.05 19:57
Titel: Re: ordinale zahlen und integer
user profile iconLuzifer hat folgendes geschrieben:

könnte das daran liegen dass es sich beim ersten mal um einen char handelt und beim zweiten mal um einen string?


ja.

Versuc mal


Delphi-Quelltext
1:
Array[i]:=Ord(String[i]);                    


F34r0fTh3D4rk - Mi 07.12.05 19:59

mit [] greifst du auf das array element zu, strings sind nichts anders als chararrays.


Luzifer - Mi 07.12.05 20:09

danke euch! funzelt jetzt