AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

TArray - Alternative zu SetLength(..) ?

Ein Thema von Der schöne Günther · begonnen am 24. Feb 2014 · letzter Beitrag vom 3. Mär 2020
Antwort Antwort
Seite 2 von 2     12
Der schöne Günther

Registriert seit: 6. Mär 2013
6.199 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

AW: TArray - Alternative zu SetLength(..) ?

  Alt 3. Mär 2020, 12:10
Ich gebe nochmal ein Beispiel.

Ganz klassisch:

Delphi-Quellcode:
procedure p();
var
   a, b: TArray<Single>;
   arrayIndex: Integer;
begin
   SetLength(a, 100);
   for arrayIndex := Low(a) to High(a) do
      a[arrayIndex] := 10.0;
   
   SetLength(b, 50);
   for arrayIndex := Low(b) to High(b) do
      b[arrayIndex] := 20.0;
      
   ProcessData(a, b);
end;
Mir war das zu lang. Ich wollte lieber so etwas haben:
Delphi-Quellcode:
procedure p()
begin
   ProcessData(
      TArray.Construct<Single>(100, 10.0),
      TArray.Construct<Single>(50, 20.0)
   );
end;

Ich bekam es. Und sah dass es gut war. Ende 😉
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.074 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: TArray - Alternative zu SetLength(..) ?

  Alt 25. Feb 2014, 16:55
Ich möchte ein Array erstellen, und das soll bitte x Stellen breit sein.

Meine Motivation ist, dass ich gerne eine Kollektion (wie eine Liste) hätte, und die soll bitte direkt vom Start weg eine bestimmte Länge haben.
Du möchtest "reservieren"?
Delphi-Quellcode:
var
  MyList : TList<Boolean>;
begin
  MyList := TList<Boolean>.Create;
  MyList.Capacity := 20; // jetzt sind 20 Elemente drin, in diesem Fall ist der Wert der Items gleich false
  MyList.Free;
end;
Aus dem Debugger:
Code:
MyList   ((False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False), 0, Pointer($666A2C) as {System.Generics.Defaults}IComparer<System.Boolean>, (nil,nil), $2A42880)
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#3

AW: TArray - Alternative zu SetLength(..) ?

  Alt 25. Feb 2014, 17:20
Günthers lustige Ratestunde.
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.199 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: TArray - Alternative zu SetLength(..) ?

  Alt 25. Feb 2014, 17:40
Herzlich Willkommen dazu.


Wie gesagt, ich wollte einfach nur anonym ein Array mit X Elementen haben. Bastel ich mir halt einfach selbst was an TArray dran. Dachte, da könnte es vielleicht schon so etwas geben.
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.154 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: TArray - Alternative zu SetLength(..) ?

  Alt 26. Feb 2014, 11:10
Herzlich Willkommen dazu.


Wie gesagt, ich wollte einfach nur anonym ein Array mit X Elementen haben. Bastel ich mir halt einfach selbst was an TArray dran. Dachte, da könnte es vielleicht schon so etwas geben.
Wir könnten Sicherlich besser helfen, wenn wir einen Sinn darin sehen würden...
Worin liegt der Nutzen eine Liste mit X Elementen "Müll" zu füllen?

Entweder habe ich die Daten Statisch im Source als Const oder lese es aus einer Resource oder aus einer Datei/Datenbank...

Lass einfach das Generics geraffel weg und nimm einen Fillchar...

Mavarik
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.199 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: TArray - Alternative zu SetLength(..) ?

  Alt 26. Feb 2014, 11:16
Danke für die gut gemeinte Hilfe.

Ich hätte einfach nur fragen sollen "Gibt es schon etwas, womit ich anonym ein Array mit einer bestimmten Länge erstellen kann?". Dann hätte jemand gesagt "Nö. Bau dir halt selber was.". Und dann wäre es das schon gewesen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:59 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