AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Inhalt von einem Array in ein anderes Array kopieren?
Thema durchsuchen
Ansicht
Themen-Optionen

Inhalt von einem Array in ein anderes Array kopieren?

Ein Thema von Caspar · begonnen am 13. Sep 2017 · letzter Beitrag vom 13. Sep 2017
Antwort Antwort
Caspar
(Gast)

n/a Beiträge
 
#1

Inhalt von einem Array in ein anderes Array kopieren?

  Alt 13. Sep 2017, 18:40
Guten Abend!
Ich habe ein kleines Problemchen ^^
Also, ich wollte den Inhalt von meinem Array auf ein oder zwei andere Array kopieren.

Zuerst habe habe ich gedacht es ganz einfach mit:
Array1:=Array2; Aber dem ist leider nicht so... D:

Dann habe ich mich im Internet schlau gemacht und es mit
Array1 := Copy(Array2); probiert, das ging aber auch nicht.

Nun hoffe ich das ich eine Antwort von euch bekommen kann

Und ja, ich habe schon im Internet nachgeschaut, aber da habe ich keine Antwort gefunden, die mir geholfen hat
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#2

AW: Inhalt von einem Array in ein anderes Array kopieren?

  Alt 13. Sep 2017, 18:52
Array1 := Copy(Array2);
Das ist zumindest der richtige Weg bei dynamischen Arrays. Zeig doch mal die Deklaration von Array1 und Array2.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
t.roller
(Gast)

n/a Beiträge
 
#3

AW: Inhalt von einem Array in ein anderes Array kopieren?

  Alt 13. Sep 2017, 18:53
Vielleicht so:
Zu und Von müssen identische Arrays sein.
Delphi-Quellcode:
for i:=0 to anzahleintraege do
 Zu[i]:=Von[i];
  Mit Zitat antworten Zitat
Caspar
(Gast)

n/a Beiträge
 
#4

AW: Inhalt von einem Array in ein anderes Array kopieren?

  Alt 13. Sep 2017, 19:03
Also... Das Problem hat sich selbst gelöst!


für die, die vlt. das gleiche Problem hatten hier nochmal kurz meine Lösung:
Delphi-Quellcode:
SetLength(Zahl1, Length(ZahlSort));
Zahl1:=ZahlSort;
Ich habe also erst die Länge des "freien Array" des zu kopierenden Array angepasst und des dann am Ende einfach gleichgesetzt.
Sorry, das ich übermütig hier ein neues Thema aufgemacht habe ^^
Naja, erst denken, dann handelt
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.081 Beiträge
 
Delphi 2009 Professional
 
#5

AW: Inhalt von einem Array in ein anderes Array kopieren?

  Alt 13. Sep 2017, 20:52
Also... Das Problem hat sich selbst gelöst!


für die, die vlt. das gleiche Problem hatten hier nochmal kurz meine Lösung:
Delphi-Quellcode:
SetLength(Zahl1, Length(ZahlSort));
Zahl1:=ZahlSort;
Das ist genau dasselbe wie bei dem ersten Codeblock im Eröffnungspost. Dem Compiler ist das egal, ob da noch was davor steht. Aber du hast ja auch nicht geschrieben, warum das nicht funktioniert hat.

Für so eine Anweisung muss das Array ein Typ sein. Mit Arrays, die als Array definiert sind, geht das nicht, da braucht man Copy.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Inhalt von einem Array in ein anderes Array kopieren?

  Alt 13. Sep 2017, 21:05
CopyOnWrite gibt es aus mir total unverständlichen Gründen nur bei Strings (das sind intern auch nur sowas wie ein Array of Char).

Na gut, ganz unverständlich nicht, da man so die Speicherzugriffe beschleunigt hat, weil da rein garnichts geprüft wird, bevor man in ein Feld was rein schreibt.
Aber ich versteh nicht, warum man das nicht dennoch aktivieren kann, bzw. warum es standardmäßig nicht aktiviert ist und man es optional deaktivieren kann.

Beim Schreibzugriff auf ein Char eines Strings, wird die Referenzzählung geprüft und wenn man nicht der Einzige ist, dann wird der String vorher kopiert. (UniqueString)
Bei dynamischen Arrays passier das aber nicht.
Dort kann/muß man via Copy, was dem UniqueString entspricht, selber dafür sorgen.
$2B or not $2B

Geändert von himitsu (13. Sep 2017 um 21:14 Uhr)
  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 20:35 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