![]() |
Syntax-Frage: Einem Array mehrere Werte "aufeinmal"
Hallo,
Folgendes Problem : Ich habe zwei Arrays (String-Arrays, jeweils 52 Indizes) und muss nun jedem Glied manuell einen Wert zuweisen. Geht das auch anders als:
Delphi-Quellcode:
irgendsowas wie
array1[1] := "xxx";
array1[2] := "xxx"; array1[3] := "xxx";
Delphi-Quellcode:
array1 := {"xxx", "xxx", "xxx"}
|
Re: Syntax-Frage: Einem Array mehrere Werte "aufeinmal&
Nimm doch eine Schleife.
|
Re: Syntax-Frage: Einem Array mehrere Werte "aufeinmal&
Eine Schleife bringt mir recht wenig, da die Strings die in das Array sollen nicht mathematisch oder in irgend einer Art und weise zusammenhängen (es ist jetz nicht das Alphabet oder so, da wäre ja z.b. chr() hilfreich)
|
Re: Syntax-Frage: Einem Array mehrere Werte "aufeinmal&
Dann bleibt dir wohl tatsächlich nur die manuelle Zuweisung...
|
Re: Syntax-Frage: Einem Array mehrere Werte "aufeinmal&
Okay, vielen Dank für die Antwort :mrgreen:
Ist ja auch kein Problem, sieht halt nur ein wenig komisch aus^^. Aber wenns anders nicht geht kann man nix machen, danke nochmals. |
Re: Syntax-Frage: Einem Array mehrere Werte "aufeinmal&
Ich wollte mal darauf hinweisen das bei diesem Code:
Delphi-Quellcode:
Der Eindruck entsteht als wolltest du das Array immer mit dem selben Inhalt füllen (hier "xxx"). Zum besseren Verständnis auch hier im Beispiel dann bitte verschiedene Werte benutzen wie zB abc, mno, xyz. So wird deutlich das es sich um verschiedene Werte handelt.
array1[1] := "xxx";
array1[2] := "xxx"; array1[3] := "xxx"; Grüße |
Re: Syntax-Frage: Einem Array mehrere Werte "aufeinmal&
Kannst folgende procedure verwenden.
Delphi-Quellcode:
Dann kannst du so die Daten zuweisen
procedure AssignStringArrayValues(var aStringArrayTarget: array of string;aStringArraySource: array of string);
var lTargetIndex:Integer; lSourceIndex:Integer; begin lTargetIndex:=Low(aStringArrayTarget); lSourceIndex:=Low(aStringArraySource); while (lTargetIndex<=high(aStringArrayTarget)) and (lSourceIndex<=high(aStringArraySource)) do begin aStringArrayTarget[lTargetIndex]:=aStringArraySource[lSourceIndex]; Inc(lTargetIndex); Inc(lSourceIndex); end; end;
Delphi-Quellcode:
var myArray:array[3..5] of string; begin AssignStringArrayValues(myArray,['asdasd','asdasd']); end; Ungetestet. |
Re: Syntax-Frage: Einem Array mehrere Werte "aufeinmal&
Hi bernau
Ich glaube den Code kann man noch extrem vereinfachen:
Delphi-Quellcode:
Aber gute Idee! :) :thumb:
procedure FillArray(var Dest: Array of String; Source: Array of String);
begin Move(Source[Low(Source)],Dest[Low(Dest)],Length(Dest)*4); end; var arr: Array[3..7] of String; begin FillArray(arr,['Hallo','Welt','!','DelphiPraxis','!']); end; Auf die Idee wäre ich nicht gekommen. Mich ärgert das z.T. auch :? Gruß Neutral General |
Re: Syntax-Frage: Einem Array mehrere Werte "aufeinmal&
Zitat:
Bis denne. |
Re: Syntax-Frage: Einem Array mehrere Werte "aufeinmal&
Zitat:
1) Was ist, wenn Dest schon gefüllt ist. Die Pointer werden doch einfach überschrieben. Leckt da der Speicher nicht etwas. 2) Du weist Pointer von Source zu, die nach Ablauf der Procedure gar nicht mehr gültig sind. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:43 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