AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Arrays setzen ohne Array[Nummer]

Ein Thema von Delphi-Narr · begonnen am 23. Mai 2010 · letzter Beitrag vom 23. Mai 2010
Antwort Antwort
Benutzerbild von Delphi-Narr
Delphi-Narr

Registriert seit: 29. Aug 2009
Ort: Duisburg
437 Beiträge
 
Delphi 2007 Professional
 
#1

Arrays setzen ohne Array[Nummer]

  Alt 23. Mai 2010, 12:44
Hallo,
ich möchte gerne einem Array Werte zuweisen.

Ich möchte jedoch nicht immer Array[0]:=1 Array[1]:=2 ..
sodern Array:=(1,2,3,4,5,6) zuweisen können. Wie mache ich das?
Tut mir leid wenns das schon häufiger gibt, aber ich habe soviel zu arrays gefunden, dass mein Fall nicht wirklick dabei war...

Liebe Grüße!
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

Re: Arrays setzen ohne Array[Nummer]

  Alt 23. Mai 2010, 12:48
Hi,

Wenn das Array einen eigenen Typ hat also z.B.

Delphi-Quellcode:
type
  TIntArray = Array of Integer;
dann kannst du das so machen:

Delphi-Quellcode:
var arr: TIntArray;
begin
  arr := TIntArray.Create(1,2,3,4,5,6,7,8,9);
end;
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Arrays setzen ohne Array[Nummer]

  Alt 23. Mai 2010, 12:49
Zur Laufzeit geht das so nicht. Das geht nur bei globaler Initialisierung.
Zur Laufzeit müsstest du dann auf CopyMemory oder Move zurück greifen wobei du dafür die Daten bereits so am Stück da liegen haben musst.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Delphi-Narr
Delphi-Narr

Registriert seit: 29. Aug 2009
Ort: Duisburg
437 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Arrays setzen ohne Array[Nummer]

  Alt 23. Mai 2010, 12:55
Also ich habe ein 2 dimensionales Array (Tdimarray=array [0..8] of array [0..8] of integer). Beim Programmstart möchte ich gerne
dann der Variablen S:Tdimarray S[0] auf meinen Array setzen, den ich jetzt als const deklariert habe.

also

Delphi-Quellcode:
const
S0:array [0..8] of integer=(1,2,3,4,5,6,7,8,9);
und dann

S[0]:=S0; Doch das geht leider nicht...
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

Re: Arrays setzen ohne Array[Nummer]

  Alt 23. Mai 2010, 12:56
@SirThornberry: Doch, das geht

@Delphi-Narr: Das müsste gehen wenn du Array[0..8] of Integer als eigenen Typ deklarierst.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
daywalker9

Registriert seit: 1. Jan 2010
Ort: Leer
594 Beiträge
 
Delphi XE3 Professional
 
#6

Re: Arrays setzen ohne Array[Nummer]

  Alt 23. Mai 2010, 12:57
Wenn du Zuweisbare typisierte Konstanten anhast ja. Ansonsten deklariere es als "var" und du kann das ohne die Option benutzten
Lars
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

Re: Arrays setzen ohne Array[Nummer]

  Alt 23. Mai 2010, 13:00
Du kannst es konkret so machen:

Delphi-Quellcode:
type
  TIntArray9 = Array[0..8] of Integer;

const
  S0: TIntArray9 = (1,2,3,4,5,6,7,8,9);

var
  S: Array[0..8] of TIntArray9;


begin
  S[0] := S0;
end;
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Arrays setzen ohne Array[Nummer]

  Alt 23. Mai 2010, 13:12
@Neutral General: Ab welcher Delphiversion funktioniert das mit dem Create bei Arraytypen?
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
daywalker9

Registriert seit: 1. Jan 2010
Ort: Leer
594 Beiträge
 
Delphi XE3 Professional
 
#9

Re: Arrays setzen ohne Array[Nummer]

  Alt 23. Mai 2010, 13:14
Also in D2010 funktioniert es. Denke das dies mit D2009 eingeführt wurde
Lars
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.136 Beiträge
 
Delphi 12 Athens
 
#10

Re: Arrays setzen ohne Array[Nummer]

  Alt 23. Mai 2010, 14:05
Delphi-Quellcode:
// TIntegerDynArray ist in der Unit Types schon fertig deklariert

function CreateIntArray(Data: array of Integer): TIntegerDynArray;
var i: Integer;
begin
  SetLength(Result, Length(Data));
  for i := 0 to High(Result) do
    Result[i] := Data[i + Low(Data)];
end;
(ich weiß, es ließe sich noch noch mit einem MOVE optimieren, aber so wäre erstmal für alle möglichen Arrays sehr leicht anpaßbar)

Delphi-Quellcode:
var arr: TIntegerDynArray;
begin
  arr := CreateIntArray([1,2,3,4,5,6,7,8,9]);
end;
Aber Delphi 2006/TDE könnte man sich, bei sowas, auch noch mit Record-Methoden und einer Kapselung des Arrays in einem Record helfen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort


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 06:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz