Thema: Delphi Typen Umwandlungsproblem

Einzelnen Beitrag anzeigen

Muetze1
(Gast)

n/a Beiträge
 
#13

Re: Typen Umwandlungsproblem

  Alt 24. Feb 2008, 19:34
Zitat von napsterxx:
Ja der Wert soll 2 sein und da will ich ein Byte schreiben, dachte das mache ich auch :S
aber wie geht das dann?
Du hattest zuvor einen String mit dem Inhalt von "#2" geschrieben. Wenn du nur die 2 hättest schreiben wollen, dann hättest du einfach die beiden Hochkommas vorne und hinten weglassen müssen.

Die Raute (#) gibt an, dass du ein Char definierst. Somit definierst du ein Zeichen eines Strings. Mit den Anführungszeichen hingegen definierst du einen String.

Zitat von napsterxx:
und was wenn ich ein Array schreiben will? Also nicht ein Byte sondern vll 6? das ging vorher so:
#90#90#90#90#90#90

und jetzt? $90$90$90$90$90$90
Halt - hier verwechselst du was! Die # sind wie gesagt zur Angabe eines Zeichens per Zeichencode. Die $ wiederrum sind eine Formatierungsangabe, dass der nachfolgende Wert nicht dezimal sondern hexadezimal angegeben wird. Somit sind #90 ein Char mit dem Code von 90 und $90 ist ein Byte mit dem Wert von 144. Du kannst auch ein Char angeben in hexadezimaler Schreibweise: z.B. #$90.

Zitat von napsterxx:
Und müsste ich es nicht eig so machen:
procedure TForm1.Button1Click(Sender: TObject);
var
val: Byte;
begin
val := StrToInt('$' + '02');
SchreibeInAdresse( $243AEC3C, @val, 1);
end;
Ob du nun einen String nimmst (wobei du das zusammensetzen von $ und 02 auch direkt machen kannst: $02) und den dann umwandelst, aber wozu? Der String ist konstant, das Ergebnis somit auch, also kannst du auch direkt den Wert zu hinscheiben.

/EDIT: ein paar Stunden zum tippen gebraucht und auch kein roten Kasten gehabt...
  Mit Zitat antworten Zitat