![]() |
Array mit denselbem Wert vorbelegen
eigentlich was ganz simples:
Wie belege ich einen array mit denselbem Wert vor Habe einen array[1..4] of integer Nun soll der array jeweils mit '1' vorbelegt werden, geht doch sicher in einem Rutsch?! Meine Versuche ohne explizite Zuweisung ergaben immer einen syntax fehler :( |
Re: Array mit denselbem Wert vorbelegen
Delphi-Quellcode:
Gruß
for i := 0 to Length(meinArray) - 1 do
begin MeinArray[i] := 1; end; |
Re: Array mit denselbem Wert vorbelegen
danke für die schnelle antwort :)
Dachte dass man evtl. doch ohne Schleife auskommt. Weshalb eigentlich lengtharray-1 :?: Da fällt mir doch beim schreiben grad ein dass das letzte zeichen eines arrays ja immer ein Steuerzeichen enthält, welches nicht überschrieben werden darf, nicht wahr?! Also nochma thx! |
Re: Array mit denselbem Wert vorbelegen
Length-1 wenn das Array null relativ ist !
Gruß Frank |
Re: Array mit denselbem Wert vorbelegen
Versuch doch mal FillChar :)
begin FillChar(Pointer(MyArray[0])^, Length(MyArray) * SizeOf(DatenTyp), 0); // füllt das Array mit Nullen auf end; MyRealName |
Re: Array mit denselbem Wert vorbelegen
@Fillchar
thx nice one! :thumb: cya Corelgott |
Re: Array mit denselbem Wert vorbelegen
Zitat:
|
Re: Array mit denselbem Wert vorbelegen
Delphi-Quellcode:
type
TxxxArray : array[1..4] of integer; const defaultArray = ( 1, 2, 3, 4 ); var array1 : TxxxArray; begin array1 := defaultArray; // Array mit default Werten vorbelegen |
Re: Array mit denselbem Wert vorbelegen
hm...
laut delphi hilfe:
Delphi-Quellcode:
das letzte beschreibt den value... oder?! Oo
procedure FillChar(var X; Count: Integer; Value: Byte)
**ich habe es bisher nur mit 0 getestet... aber von 0 bis 255 sollte doch theoretisch alles machbar sein... **proof me wrong... cya Corelgott |
Re: Array mit denselbem Wert vorbelegen
Ja das sollte eigentlich gehen. Aber bei mir war es so, dass ich so wie oben beschrieben eine Access Violation hatte. Bei mir geht nur folgendes:
Delphi-Quellcode:
FillChar (Array, Length(Array)*SizeOf(Datentyp), 0);
|
Re: Array mit denselbem Wert vorbelegen
Zitat:
|
Re: Array mit denselbem Wert vorbelegen
Zitat:
Kann man nicht einfach statt "length(meinArray) - 1" dafür "high(meinArray)" benutzen. Dann braucht man nicht noch extra einen wieder abziehen. Oder ist das nicht das gleiche. Und dann auch gleich statt "0" dafür "low(meinArray)" um sicher zugehen, falls das Array woanders beginnt als bei Null. Gruß Micha |
Re: Array mit denselbem Wert vorbelegen
Bei einem dynamsichen Array kann man "0 to High()" nutzen, bei einem statischen Array muss der Index nicht bei 0 beginnen (s. Beispiel aus #1 / "array[1..4]"), dort sollte man dann "Low(Name) to High(Name)" benutzen. :)
|
Re: Array mit denselbem Wert vorbelegen
Oder sich für alle Arten von Arrays etwas basteln:
Delphi-Quellcode:
procedure FillArray (var aArray : Array of Integer; aValue: Cardinal); overload;
var ndx : integer; begin for ndx := Low(aArray) to High(aArray) do aArray[ndx] := aValue; end; procedure FillArray (var aArray : Array of Char; aValue: Char); overload; var ndx : integer; begin for ndx := Low(aArray) to High(aArray) do aArray[ndx] := aValue; end; procedure FillArray (var aArray : Array of String; aValue: String); overload; var ndx : integer; begin for ndx := Low(aArray) to High(aArray) do aArray[ndx] := aValue; end; procedure TForm1.btn_TestClick(Sender: TObject); var myStringArray : Array[2..10] of String; myIntegerArray : Array[2..10] of Integer; myCharArray : Array[2..10] of Char; begin FillArray(mystringArray,'blubb'); FillArray(myIntegerArray,1); FillArray(myCharArray,' '); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:12 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 by Thomas Breitkreuz