Autor Beitrag
Land-Gull
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 51

SuSe 9.2, WIN XP
D7 Enter
BeitragVerfasst: Mi 31.08.05 15:43 
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 107



BeitragVerfasst: Mi 31.08.05 15:49 
Hier der Text aus der Hilfedatei:

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

    Unit

    System

    Kategorie

    Zeichenverarbeitung

    procedure FillChar(var X; Count: Integer; Value: Byte);

    Beschreibung

    FillChar füllt Count aufeianderfolgende (Parameter X) Bytes mit dem in Value angegebenen Wert des Typs Byte oder Char.

    Warnung: Es wird keine Bereichsprüfung durchgeführt.
Land-Gull Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 51

SuSe 9.2, WIN XP
D7 Enter
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 120
Erhaltene Danke: 18


D2005 Personal
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 51

SuSe 9.2, WIN XP
D7 Enter
BeitragVerfasst: So 04.09.05 22:46 
Jop Danke für die Erkärung :-)