![]() |
Delphi-Version: 2007
Array mit mehreren Strings auf einmal füllen
Guten Abend,
es ist mir fast peinlich die Frage zu stellen, da Arrays m.E.n. zu den Grundfunktionen gehören, die selbst ein Anfänger wissen müsste bzw. man zur not ergoogeln sollte. Weder google noch die Boardsuche hat mir dabei jedoch etwas wirklich gebracht. Aufgabe: Ich möchte mehrere Strings in ein Array packen. "Problem": Die Strings sind bereits dem Programm vorgegeben, so dass ich bisher als einzige Lösung folgendes tat: [...] var ArrayWithData: Array of String; begin ArrayWithData[0] := 'a'; ArrayWithData[1] := 'b'; [...] ArrayWithData[15] := 'c'; Aber dass muss doch auch effizienter gehen ?! Ich habe im Internet auf einer FreePascal Seite folgenden Quellcode gefunden (Umgeformt auf mein Beispiel): [...] ArrayWithData := ('a','b','c'); Das "schluckt" Delphi 2007 aber nicht... Ich bin ratlos... wie kann ich ein Array fortlaufend füllen ohne den Quellcode "künstlich" aufquillen zu lassen ? EDIT:// Alternativ kam mir die Idee die Strings in eine StringList zu packen und von dort in ein Array zu verschieben... jedoch habe ich auch bei der Stringlist nur die Möglichkeit gefunden ein Item je Zeile hinzuzufügen... |
AW: Array mit mehreren Strings auf einmal füllen
Handelt es sich bei den Strings um Konstanten? Wenn ja, dann kannst du das Array sofort als Konstante definieren und an dieser Stelle einfach befüllen...
|
AW: Array mit mehreren Strings auf einmal füllen
.. spräche etwas dagegen ein TStringList zu nutzen?
Delphi-Quellcode:
Nachtrag:
sl := TStringList.create;
sl.Delimiter := ' '; sl.DelimitedText := 'a b c'; zum Schluss das Freigeben der StringList nicht vergessen Grüße Klaus |
AW: Array mit mehreren Strings auf einmal füllen
Zitat:
|
AW: Array mit mehreren Strings auf einmal füllen
Zitat:
..läst sich aber ähnlich wie ein Array ansprechen sl[0].. Grüße Klaus |
AW: Array mit mehreren Strings auf einmal füllen
Wie gesagt, habe ich beim Lesen der Frage auch an eine gedacht.
|
AW: Array mit mehreren Strings auf einmal füllen
Hab hier grad mal ne Routine geschrieben, die ein String-Array mit Werten befüllt:
Delphi-Quellcode:
Beispiel-Aufruf:
procedure FillArray(var AArray : array of string; const AValues : array of string);
var i1 : integer; var i2 : integer; begin //-- i1 := Low(AArray); i2 := Low(AValues); // while (i1 <= High(AArray)) and (i2 <= High(AValues)) do begin AArray[i1] := AValues[i2]; // i1 := i1 + 1; i2 := i2 + 1; end; end;
Delphi-Quellcode:
FillArray(ZuBefuellendesArray,['5','5','4']);
Am besten ist es dabei, wenn beide Arrays gleich groß sind. Man kann das ganze auch mit einem Dynamischen Array machen, dann könnte man in der Routine vorher per SetLength die Länge des zu befüllenden Arrays setzen und an die Anzahl der zu speichernden Werte anpassen. mfg |
AW: Array mit mehreren Strings auf einmal füllen
Hallo,
mit etwas weniger Schreibaufwand geht es so:
Delphi-Quellcode:
Gruß Hawkeye
uses Types;
var A: TStringDynArray; begin A := TStringDynArray.Create('a', 'b', 'c', 'd', 'e', 'f'); end; |
AW: Array mit mehreren Strings auf einmal füllen
.. TStringDynArray kennt Delphi 2006 noch nicht,
ob das bei Delphi 2007 der Fall ist - keine Ahnung. Grüße Klaus |
AW: Array mit mehreren Strings auf einmal füllen
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:21 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