AGB  ·  Datenschutz  ·  Impressum  







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

mehrdimensionaler Array dynamisch?

Ein Thema von torud · begonnen am 8. Jun 2003 · letzter Beitrag vom 9. Jun 2003
Antwort Antwort
Seite 1 von 2  1 2      
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#1

mehrdimensionaler Array dynamisch?

  Alt 8. Jun 2003, 14:48
Hallo Leute,

ist es möglich einen mehrdimensionalen Array dynamisch zu verwalten?

Zur Zeit halte ich mir meinen Array so vor:
var myZeile : array[0..10, 0..50] of String; den ersten array von 0..10 brauche ich statisch, aber den zweiten würde ich gern dynamisch halten und je nach Bedarf um 1 erhöhen. Wenn das möglich ist, wäre ich für eine Infor wie´s geht dankbar.

Ausserdem interessiert mich, ob ich einen bestimmten Bereich innerhalb eines Arrays löschen kann.

Danke Tom

[edit=Daniel B]Delphi-Tags eingefügt. MfG Daniel B.[/edit]
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2
  Alt 8. Jun 2003, 14:54
Kuck dir mal in der Hilfe setlength an.

Was meinst du mit löschen? Man kann einen Bereich nur überschreiben.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#3
  Alt 8. Jun 2003, 15:05
Hi Luckie,

vielleicht habe ich das mit dem löschen nicht ausführlich genug beschrieben, aber hier folgendes dazu.

diesen Array benötige ich für meinen Formular-Maker:

var myZeile : array[0..10,0..50] of String;

Sobald der User ein neues Control für das Formular anlegt, werden die ersten 11 Einträge für alle Eigenschaften des Formularfeldes verwendet. Der zweite Array ist so eine Art Anzahl. Ich habe vorher die Daten in einem Stringgrid abggelegt und in pro Formularfeld eine Reihe mit 11 Spalten belegt. Das zum Vorgeplänkel.

Wenn ich nun 5 Formularfelder habe, und ich will das 3 löschen, wäre es eine tolle Geschichte, wenn dann der ursprünglich 4 Eintrag auf die 3 rutzscht und der 5te auf den den 4ten Eintrag. Alles klar? Ich frage deshalb, weil ich beim Eintragen eines neuen Formularfeldes alle Reihen durchgehe und dort (faulerweise) nur schaue ob die 1.Spalte leer ist. In dem Fall würde ein neues Formularfeld in die 3te Zeile wieder geschrieben werden.

Ist alles irre!
oder?

Tom
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4
  Alt 8. Jun 2003, 15:10
Dann kopier alle eins nach vorne und verkürze das Array.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#5
  Alt 8. Jun 2003, 15:15
Hi Luckie,

nun kommt sicher meine letzte Frage zu diesem Thema:

Wie kopiere ich alles ein nach vor bzw. eins nach hinten?
Damit hätte ich gleich noch das Problem des Sortierens des Formularfelder sichergestellt.

Das mit dem dynamisch halten werde ich wohl lieber lassen, da ich in Eurem Archiv noch etwas gegrast habe und mich belehren haben lasse, dass dyn. Arrays im Speicher bleiben und man lieber einen fixen Wert vorgeben sollte, den man im Notfall um 10% erhöht.

Danke Tom
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6
  Alt 8. Jun 2003, 15:18
In dem du über den Array-Index was zu weißt, wie sonst?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#7
  Alt 8. Jun 2003, 15:25
Naja das ist mir auch klar.
Ich dachte nur gerade daran, dass von mir aus in diesem Beispiel der Inhalt des Array[2] mit dem des Array[3] getauscht werden soll.

myArray[0]:=0
myArray[1]:=1
myArray[2]:=2
myArray[3]:=3

Probelm erkannt?
Tom
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8
  Alt 8. Jun 2003, 15:38
Streng doch mal dein Hirn selber an.

Du haste einen Fußball in der linken Hand und einen in der rechten. Jetzt willst du diese Fußbälle vertauschen, aber zwei Fußbälle kannst du nicht gleichzeitig in einer Hand halten. Also was machst du?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#9
  Alt 8. Jun 2003, 15:47
Danke Herr Lehrer!

manchmal kann das wirklich nicht schaden.
Code:
procedure TForm1.TauscheArrays(eins, zwei:integer);
 var
 myZwischenVariable:integer;
begin
    myZwischenVariable:=myArray[eins];
    myArray[eins]:=myArray[zwei];
    myArray[zwei]:=myZwischenVariable;
end;
Vielleicht gehts ja so!?
myArray wäre bei global gehalten.

Tom
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von Christian S.
Christian S.

Registriert seit: 19. Apr 2003
Ort: Düsseldorf
835 Beiträge
 
#10
  Alt 8. Jun 2003, 15:51
Zitat:
Probelm erkannt?
Die Frage ist etwas dreist, oder?

Du kannst Dir das, was Luckie beschrieben hat, übrigens mal als Dreieck vorstellen! An jeder Ecke eine Variable und jede Kante ist ein Pfeil, der von einer Ecke zur anderen zeigt. Die Richtung der Pfeile folgt entweder dem Uhrzeigersinn oder entgegengesetzt. Du musst Dir nur noch überlegen, wann welcher Pfeil zum Einsatz kommt!

MfG,
Peter

P.S.: Und jetzt meine Standardbemerkung, wenn ich das Wort "Array" sehe: Hier gibt es ein Einsteiger-Tutorial zum Thema Arrays.

//edit: zu spät ...
Christian S.
Admin in der Entwickler-Ecke
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 07:55 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