Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Frage zu Zahlen (https://www.delphipraxis.net/27695-frage-zu-zahlen.html)

Pixbyte 14. Aug 2004 04:04


Frage zu Zahlen
 
Hallo,

vielleicht ein wenig dumm die Frage aber was bedeutet eigentlich folgendes:

ringbuffer: array[0..$ff0] of char;
ringbuffer := #$00+#$14;

Was bedeutet hier das # vor den Hexwerten? Ich denke mal das das Ergebnis doch $14(0x14) ist?
Was wird dann eigentlich geändert? Nur die Position 0 des Arrays?

Ocrana

dizzy 14. Aug 2004 04:15

Re: Frage zu Zahlen
 
Das "#" macht das gleiche wie die Funktion Delphi-Referenz durchsuchenchar(). Deswegen klappt überhaupt nur diese Art der Zuweisung an das Array, da es ein Array of Char ist.
Allerdings ist es komisch gleich an den Anfang eines CharArrays (ähnlich dem Typ String) einen #00 zu schreiben, da das in der Regel das Ende einer Zeichenkette signalisiert :gruebel:.

\\edit: Das "+" ist hier im übrigen nicht der arithmetische Operator der Zahlen Addiert, sondern da es Character sind ist das hier ein Verkettungsoperator der die Chars hintereinander schreibt.

Pixbyte 14. Aug 2004 04:18

Re: Frage zu Zahlen
 
Hallo,

ja aber es ist ja ein $00 in einer addition, also ich vermute mal das es dann $14 oder char(0x14) einfügt. Aber geh ich richtig in der Annahme, wei Du schreibst, das er das dann an Position 0 einfügt?

Ocrana

dizzy 14. Aug 2004 04:20

Re: Frage zu Zahlen
 
Zitat:

Zitat von Pixbyte
aber es ist ja ein $00 in einer addition,

Nein, ein #$00. Das macht einen Unterschied (siehe mein Edit oben ;))


\\noch ein Edit: Da ein Array of Char dem Typ String ähnlich ist, kann man genau so wie einem String zuweisen:
Delphi-Quellcode:
var
  s: String;
  c: array[0..15] of Char;
begin
  s := 'Hallo';
  s := #$40 + #$50;
  s := chr(30) + chr(25);

  c := 'Hallo';
  c := #$40 + #$50;
  c := chr(30) + chr(25);
end;

^^ geht alles!

Pixbyte 14. Aug 2004 04:25

Re: Frage zu Zahlen
 
Hi,

öhmmm...man merkt wohl das ich ein blondchen bin ;)

Ok nochmal für langsamme:

Ich habe:
ringbuffer := #$00+#$14; in einem Array of chars. Ich habe vemutet das er an den Anfang des Arrays dann #$00+#$14 = #$14 einfügt. Das ist falsch? Macht er womöglich rungbuffer[0] := char(0x00); und ringbuffer[1] := char(0x14)???

Ocrana

dizzy 14. Aug 2004 04:27

Re: Frage zu Zahlen
 
Zitat:

Zitat von Pixbyte
Macht er womöglich rungbuffer[0] := char(0x00); und ringbuffer[1] := char(0x14)???

:thuimb:
Nur dass in Delphi Hexwerte mit "$", und nicht mit "0x" wie in C angegeben werden ;)

Pixbyte 14. Aug 2004 04:30

Re: Frage zu Zahlen
 
Hallo,

ja ich komme aus der C Ecke :)

Also ist:

ringbuffer := #$00+#$14; das Geliche wie ringbuffer := #$00#$14???

Ocrana

dizzy 14. Aug 2004 04:31

Re: Frage zu Zahlen
 
Zitat:

Zitat von Pixbyte
ja ich komme aus der C Ecke :)

Rieche ich auf 10km gegen den Wind :mrgreen:

Zitat:

Zitat von Pixbyte
Also ist:
ringbuffer := #$00+#$14; das Geliche wie ringbuffer := #$00#$14???

nochmal: :thuimb:

\\edit: Man kann auch ganz ekelig werden und sowas machen:
Delphi-Quellcode:
ringbuffer := 'a'+chr(10)+#13#$a7+'h8'+chr($5b);
:mrgreen:

Pixbyte 14. Aug 2004 04:34

Re: Frage zu Zahlen
 
ja die C Leute stinken immer, ist der Angstschweiss ;-)

Aber ist schon komisch das es bei Delphi immer so viele Schreibweisen gibt. Irgendwie nicht einheitlich und das in 20 Zeilen.....muss ich mich echt dran gewöhnen.

Ocrana

dizzy 14. Aug 2004 04:40

Re: Frage zu Zahlen
 
Zitat:

Zitat von Pixbyte
ja die C Leute stinken immer, ist der Angstschweiss ;-)

Der gemeine "Bluescreen-Schweiss", gell? :lol:

Zitat:

Zitat von Pixbyte
Aber ist schon komisch das es bei Delphi immer so viele Schreibweisen gibt. Irgendwie nicht einheitlich und das in 20 Zeilen.....muss ich mich echt dran gewöhnen.

Och du, wenn ich mir mal C antu, dann geht mir das ganz ähnlich. Nur fällt es einem in seiner "Muttersprache" irgendwie nicht mehr auf.
Für gewöhlich nimmt man für "normale" Zeichen die auf der Tastatur sind die Variante in Hochkommata ('Hallo'), und für nicht schreibbare Steuerzeichen entweder als Funktion chr(wert) bzw. als Cast char(wert) (eigentlich gleichwertig), oder eben kürzer mit dem "#". Das Konstrukt mit # und einer Hexzahl sieht dann zugegebenerweise abenteuerlich aus ("#$wert", naja *g*). Mir war bis dato sogar nie richtig bewusst, dass es da ja tatsächlich mindestens 4 Schreibweisen gibt... sowas :shock:.
Und trotzdem ist Delphi ästhetischer im Codebild *harharr*


Und ich geh jetzt endlich mal schlafen... ist ja immerhin schon früh :)

Nachti,
dizzy


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:59 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz