AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Array-Variable innerhalb einer Prozedur definieren
Thema durchsuchen
Ansicht
Themen-Optionen

Array-Variable innerhalb einer Prozedur definieren

Ein Thema von qb-tim · begonnen am 31. Aug 2007 · letzter Beitrag vom 3. Sep 2007
Antwort Antwort
Benutzerbild von qb-tim
qb-tim

Registriert seit: 3. Mär 2006
Ort: Deutschland
280 Beiträge
 
Delphi 6 Professional
 
#1

Array-Variable innerhalb einer Prozedur definieren

  Alt 31. Aug 2007, 14:10
Hi,

ich möchte ein Array definieren, dessen Größe aber von einer von einer Prozedur erzeugten Variablen abhängig sein soll (z.Bsp: var AnzahlArray: Integer).

Ist das möglich? Wie stelle ich das an?
  Mit Zitat antworten Zitat
Benutzerbild von jim_raynor
jim_raynor

Registriert seit: 17. Okt 2004
Ort: Berlin
1.251 Beiträge
 
Delphi 5 Standard
 
#2

Re: Array-Variable innerhalb einer Prozedur definieren

  Alt 31. Aug 2007, 14:11
Das was du suchst sind dynamische Arrays. Also:

Delphi-Quellcode:
var
  Arr: Array of ...;

begin
  ...
  SetLength(Arr,AnzahlArray);
end;
Christian Reich
Schaut euch mein X-COM Remake X-Force: Fight For Destiny ( http://www.xforce-online.de ) an.
  Mit Zitat antworten Zitat
Ghostwalker

Registriert seit: 16. Jun 2003
Ort: Schönwald
1.299 Beiträge
 
Delphi 10.3 Rio
 
#3

Re: Array-Variable innerhalb einer Prozedur definieren

  Alt 31. Aug 2007, 14:13
Beispiel:

Delphi-Quellcode:
   Procedure DynamicArray(size:integer);
   var
     arr : array of byte;
   begin
     SetLength(arr,size);//Array dimensionieren auf die übergebene größe
     {tu was damit}
     SetLength(arr,0);//array wieder freigeben
   end;
hoffe das hilft
Uwe
e=mc² or energy = milk * coffee²
  Mit Zitat antworten Zitat
Benutzerbild von qb-tim
qb-tim

Registriert seit: 3. Mär 2006
Ort: Deutschland
280 Beiträge
 
Delphi 6 Professional
 
#4

Re: Array-Variable innerhalb einer Prozedur definieren

  Alt 31. Aug 2007, 14:18
Danke

Zitat von Ghostwalker:
hoffe das hilft
Es hilft sehr
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: Array-Variable innerhalb einer Prozedur definieren

  Alt 31. Aug 2007, 14:26
Was findet ihr nur immer an den Arrays so toll.
Nimm doch eine Liste, dann bist Du flexibler.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.268 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Array-Variable innerhalb einer Prozedur definieren

  Alt 31. Aug 2007, 15:49
Zitat von RavenIV:
Was findet ihr nur immer an den Arrays so toll.
Nimm doch eine Liste, dann bist Du flexibler.
Du hast halb recht

Wenn man ein eindimensionales array vom Type String oder Integer benötigt, dann verwende ich auch meist eine Liste.

Manchmal braucht man aber auch eine komplexere Liste, in der man z.B. Name Strasse und Ort benötigt.

Dann definiere ich ein Record und deklariere ein array of MyAdressRecord.

Ist einfach schneller gecoded, als wenn ich die Adresse in ein Object verfrachte und die Objekte einer TList zufüge. Wenn allerdings häufiger Elemente der Liste hinzugefügt oder eher noch entfernt werden müssen, dann verwende ich natürlich lieber Objekte als ein Array.

Aber wenn wir bald Generics haben sieht das alles wieder ganz anders aus
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
Ghostwalker

Registriert seit: 16. Jun 2003
Ort: Schönwald
1.299 Beiträge
 
Delphi 10.3 Rio
 
#7

Re: Array-Variable innerhalb einer Prozedur definieren

  Alt 31. Aug 2007, 16:15
Zitat von bernau:

Du hast halb recht

Wenn man ein eindimensionales array vom Type String oder Integer benötigt, dann verwende ich auch meist eine Liste.

Manchmal braucht man aber auch eine komplexere Liste, in der man z.B. Name Strasse und Ort benötigt.

Dann definiere ich ein Record und deklariere ein array of MyAdressRecord.

Ist einfach schneller gecoded, als wenn ich die Adresse in ein Object verfrachte und die Objekte einer TList zufüge. Wenn allerdings häufiger Elemente der Liste hinzugefügt oder eher noch entfernt werden müssen, dann verwende ich natürlich lieber Objekte als ein Array.

Aber wenn wir bald Generics haben sieht das alles wieder ganz anders aus
Ähm...du hast auch nur halb recht.*G*

Die Frage ist eher, was man mit den Daten anstellen will. Dabei ists egal ob man nun einen Record hat oder nur einen einfachen Typen. Außerdem muß man für ein TList, einen Record nicht in ein TObject verfrachten, es reicht auch ein einfacher Zeiger aus.

Wie gesagt, wichtiger ist, was man damit anstellen will. Für umfangreichere Bearbeitungen (Hinzufügen, löschen usw.) ist TList besser geeignet, da sie einfacher zu handhaben ist und für viele Bearbeitungen bereits entsprechende Methoden hat. Für einfaches Zwischenspeichern z.B. ist ein offenes Array wesentlich einfacher
Uwe
e=mc² or energy = milk * coffee²
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.268 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Array-Variable innerhalb einer Prozedur definieren

  Alt 3. Sep 2007, 08:06
Zitat von Ghostwalker:
Ähm...du hast auch nur halb recht.*G*
Ach männooo

Zitat von Ghostwalker:
Außerdem muß man für ein TList, einen Record nicht in ein TObject verfrachten, es reicht auch ein einfacher Zeiger aus.
Aber den Speicher für die Records hast du vorher mit "New" reserviert. Oder? Den musst du natürlich auch wieder manuell freigeben. Da definiere ich mir lieber ein Objekt und füge diesen in eine TObjetList ein. Dann muss ich mich nicht mehr um's freigeben kümmern.

Zitat von Ghostwalker:
Wie gesagt, wichtiger ist, was man damit anstellen will. Für umfangreichere Bearbeitungen (Hinzufügen, löschen usw.) ist TList besser geeignet, da sie einfacher zu handhaben ist und für viele Bearbeitungen bereits entsprechende Methoden hat. Für einfaches Zwischenspeichern z.B. ist ein offenes Array wesentlich einfacher
Das ist eigendlich auch da, was ich in meinem vorherigen Posting beschrieben habe.


Gerd
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  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 21:10 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