Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - FillChar() !?


Land-Gull - Mi 31.08.05 15:43
Titel: FillChar() !?
Hi Leute,
ich wollt mich nurmal vergewissern ob ich das richtig verstanden hab.
Die Procedure(?) fillchar(x,Sizeof(x),#0) reserviert sozusagen den speicherplatz für dieses Array, Variable...? Kann mir vielleicht jemand genau erklären was das bring!?Ich versuch nämlich mal das ganze CreateProcess und TStartupinfo Zeug zu verstehn :?

Danke im Voraus


MisterBum - Mi 31.08.05 15:49

Hier der Text aus der Hilfedatei:



Land-Gull - Mi 31.08.05 16:14

Wieso ist der Wert in einem Feld eigentlich 257 wenn ich Array of Word habe. Obwohl ein Byte doch 255 sind? Wenn ich ein Integerfeld mit einem Byte fülle sind das sogar 16843009. Ich Blick da nich durch. ?! Und meine Delphi Hilfe scheint nicht Komplett zu sein. :(


SMO - Mi 31.08.05 23:47

Die Prozedur FillChar füllt einen Block aufeinanderfolgender Bytes mit einem bestimmten Wert.

Die FillChar-Prozedur berücksichtigt nicht, auf was für eine Art von Variable du sie anwendest. Sie füllt einen Datenblock byteweise mit dem Char oder Byte, das du als dritten Parameter übergibst. Nehmen wir mal an, du füllst mit #1 bzw 1. Bei einem Array of Byte enthalten alle Elemente dann logischerweise den Wert 1. Bei einem Array of Word wären alle Elemente jedoch gleich 257. Warum? Weil jedes Element ein Word ist, und jedes Word besteht aus 2 Bytes. Die sind beide gleich 1, also sieht das Word in hexadezimaler Schreibweise so aus: $0101. Das entspricht 257 im Dezimalsystem. Ein Integer besteht aus 4 Bytes. Die wären dann natürlich $01010101 = 16843009. Verstanden?


Land-Gull - So 04.09.05 22:46

Jop Danke für die Erkärung :-)