AGB  ·  Datenschutz  ·  Impressum  







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

Arrays kopieren mit Hindernissen

Ein Thema von KeeN · begonnen am 27. Jan 2003 · letzter Beitrag vom 27. Jan 2003
Antwort Antwort
Seite 2 von 2     12   
Brüggendiek

Registriert seit: 13. Dez 2002
Ort: Dortmund
275 Beiträge
 
Delphi 5 Standard
 
#11
  Alt 27. Jan 2003, 18:06
Hallo KeeN!

Die inkompatiblen Tpyen kommen daher:
Zitat von KeeN:
Code:
  list1: array of integer;
  list2: array of integer;
Dadurch sind zwei Arrays mit unterschiedlichem Typ deklariert!
Lösung: entweder, wie schon vorgeschlagen, einen Typ deklarieren, oder:
Code:
list1, list2: array of integer;
Dann ist der Typ gleich!

Klingt komisch, ist aber so in der Hilfe beschrieben!

Gruß

Dietmar Brüggendiek
Dietmar Brüggendiek
  Mit Zitat antworten Zitat
Benutzerbild von KeeN
KeeN

Registriert seit: 21. Jan 2003
Ort: Dolgowitz
14 Beiträge
 
#12
  Alt 27. Jan 2003, 18:06
+muah+ ich kriech die krise! das funktioniert zwar jetzt mit copy aber der macht trotzdem wieder nur 4 von 5 zahlen...
  Mit Zitat antworten Zitat
Brüggendiek

Registriert seit: 13. Dez 2002
Ort: Dortmund
275 Beiträge
 
Delphi 5 Standard
 
#13
  Alt 27. Jan 2003, 18:21
Hallo KeeN!

Ich habe das gerade bei mir (D5 Standard) mal ausprobiert - keine Probleme (mit meiner Deklaration in einem Durchgang).

Bist Du sicher, daß Dein Ausgangsfeld Länge 5 ist und alle 5 Werte belegt hat???

@Christian Seehase: Length(dynArray) ist immer 4 (weil ein Pointer)!!

Gruß

Dietmar Brüggendiek
Dietmar Brüggendiek
  Mit Zitat antworten Zitat
Benutzerbild von KeeN
KeeN

Registriert seit: 21. Jan 2003
Ort: Dolgowitz
14 Beiträge
 
#14
  Alt 27. Jan 2003, 18:26
ja bin ich. also ich hab zwei listboxen. listbox1 gibt die in array1 (list1) generierten zufallszahlen aus. und das sind 5. listbox2 gibt die dinger sortiert aus. und da sind es immer nur 4. ich hab auch schon probiert list1 in list2 zu kopieren und dann in listbox2 auszugeben, das gleich ergebnis ... wieder nur 4.

KeeN
die angst eines windows anwenders: das system könnte den tag ohne absturz überstehen

linux - where do you want to go today? und: linux: für alle mit einem iq über 98
  Mit Zitat antworten Zitat
Brüggendiek

Registriert seit: 13. Dez 2002
Ort: Dortmund
275 Beiträge
 
Delphi 5 Standard
 
#15
  Alt 27. Jan 2003, 18:55
Hallo nochmal!

Zitat von Luckie:
Geht das nicht:
Code:
List2 := List1;
Das geht definitiv nicht - jedennfalls nicht so, wie man sich das normalerweise wünscht! Dann sind nämlich beide Felder dasselbe und Änderungen am einen betreffen auch das andere!
Dynamische Arrays sind (wie Strings) Pointer. Mit Deiner Zuweisung werden beide Pointer auf dasselbe Array gesetzt - und dazu muß List2 nicht einmal initialisiert sein!!!

Es bleibt allerdings dabei, daß ich das hier vorhandene Problem nicht nachvollziehen kann.
Die einzig mögliche Ursache ist, daß List1 4 statt 5 Elemente hat.

Mein Testcode, ganz schnell zusammengeklopft:
Code:
var a,b:array of integer;
p:byte;

begin
setlength(a, 5);
setlength(b, 5);

for p:=0 to High (a) do
begin
a[p]:=random (100);
end;

for p:=0 to High (a) do
begin
b[p] := a[p];
end;


end;
Da enthalten beide Felder dann dieselben 5 Werte.

Gruß

Dietmar Brüggendiek
Dietmar Brüggendiek
  Mit Zitat antworten Zitat
Benutzerbild von KeeN
KeeN

Registriert seit: 21. Jan 2003
Ort: Dolgowitz
14 Beiträge
 
#16
  Alt 27. Jan 2003, 19:02
+hihi+ bei mir leider nicht. ich glaub langsam das liegt am kylix ich werd mich mal nach nem update umtun ...

danke trotzdem
KeeN
die angst eines windows anwenders: das system könnte den tag ohne absturz überstehen

linux - where do you want to go today? und: linux: für alle mit einem iq über 98
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#17
  Alt 27. Jan 2003, 20:01
Zitat von Brüggendiek:
@Christian Seehase: Length(dynArray) ist immer 4 (weil ein Pointer)!!
Falsch! Was du meinst ist SizeOf(dynArray).
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.106 Beiträge
 
Delphi 11 Alexandria
 
#18
  Alt 27. Jan 2003, 22:27
Moin Keen,

lass' doch mal in der Schleife einen Zähler mitlaufen, und gebe dessen Wert nach Beendigung der Schleife aus, oder vielleicht sogar immer in der Schleife zusammen mit den jeweiligen Werten.

Das einzige was mir sonst noch einfällt:

Wenn List2 die Werte sortiert enthält: Wie sortierst Du?
Ist es im Bereich des Möglichen, dass Du in List2 nur deshalb nur vier Werte stehen hast, weil zwei der Werte in List1 gleich sind, und doppelte Werte bei Deinem Algo aussortiert werden?
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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