Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Arraywert in einen anderen Array??? Wie? (https://www.delphipraxis.net/56606-arraywert-einen-anderen-array-wie.html)

mosquito 8. Nov 2005 17:07


Arraywert in einen anderen Array??? Wie?
 
Bidde helft mir, ich muss einen Arraywert in einen anderen Array bringen
Kxa[b]:=Kxa[a];
aba das geht wohl nicht, tya in C++ geht das wunderbar,
also please help

Daniel 8. Nov 2005 17:07

Re: Array Problem -------------------
 
hm. Ja und zuerst änderst Du bitte den Titel Deines Themas. Das sieht so gar nicht schön aus. ;-)

Sharky 8. Nov 2005 17:09

Re: Array Problem -------------------
 
Hai mosiquiote,

entferne doch bitte die --- aus dem Titel deines Threads und gebe diesem bei dieser gelegenheit einen Titel der auch grob den Inhalt der Frage beschreibt.

Danke.

P.S.: Einfach im obersten Beitrag von Dir auf [Edit] klicken.

mosquito 8. Nov 2005 17:11

Re: Arraywert in einen anderen Array??? Wie?
 
jaja, sry, so besser???
und helft mir jetzt bidde

Neutral General 8. Nov 2005 17:11

Re: Arraywert in einen anderen Array??? Wie?
 
Delphi-Quellcode:
var a : array[1..5] of Integer;
     b : array[1..5] of Integer;
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i : Integer;
begin
 for i:= 1 to 5 do begin //Arrays mit Zahlen füllen
  a[i]:= i;
  b[i]:= 2*i;
 end;
 a[2] := b[3]; // das was du vorhast
 ShowMessage(IntToStr(a[2])); // es funktioniert...
end;
Wie schon im Quelltext zu sehn : Bei mir geht das...

mosquito 8. Nov 2005 17:14

Re: Arraywert in einen anderen Array??? Wie?
 
ja, dankeschön, aba das hab ich auch hinbekommen, es geht dabei darum, dass ich zwei variablen drin habe (sonst funktionierts auch, nur bei dieser Geschichte nicht)...




Kxa[b]:=Kxa[a];

Sharky 8. Nov 2005 17:15

Re: Arraywert in einen anderen Array??? Wie?
 
Zitat:

Zitat von mosquito
Kxa[b]:=Kxa[a];

Hai mosquito,

damit kopierst Du ja nicht zwichen zwei Arrays sonder Du kopierst den Inhalt des Arrays von possition a in die position b.

mosquito 8. Nov 2005 17:18

Re: Arraywert in einen anderen Array??? Wie?
 
angenommen
a:=1
b:=2

(also ohne variablen Kxa[1]:=Kxa[2];)

aber nun muss ich zwischendurch mal die variablen ändern... z.B b:=5;

wie kann ich dass mit variablen machen???

hanselmansel 8. Nov 2005 17:20

Re: Arraywert in einen anderen Array??? Wie?
 
Genau so, wie du gepostet hat. Funktioniert einwandfrei. Dein Fehler liegt IMHO woanders.

Ach ja, wenn
Delphi-Quellcode:
a := 1;
//und
b := 2;
//Dann ist die Zuweisung
kx[b] := kx[a];
//eher
kx[2] := kx[1];
:zwinker:

Neutral General 8. Nov 2005 17:21

Re: Arraywert in einen anderen Array??? Wie?
 
Eh.. Ich glaube niemand versteht grad was du überhaupt willst...zumindest ich nicht.. :gruebel:

Oder willst du den Wert der in Kxa[b] ist an die Stelle Kxa[a] schreiben ?

Das wäre dann Kxa[a]:= Kxa[b]..

mosquito 8. Nov 2005 17:24

Re: Arraywert in einen anderen Array??? Wie?
 
also wenn ich diese zeile:
Kxa[b]:=Kxa[a];
eingebe und das prog ausführe, dann kommt eine message:

Im Projekt Project1.exe ist eine Exception der Klasse EAccenessViolation aufgetreten. MEldung:
"Zugriffsverletztung bei Adresse 00... usw. im Modul Project1.exe". Lese Adresse 00.. usw.. Prozess
wurde angehalten...

mehr weis ich nicht

Sharky 8. Nov 2005 17:26

Re: Arraywert in einen anderen Array??? Wie?
 
Hai mosquito,

zeige doch mal wie dein Array deklariert ist. Und dann den gesamten Code in dem Du die Werte kopieren möchtest.
Alles andere ist ein versuch im trüben zu fischen.

Neutral General 8. Nov 2005 17:27

Re: Arraywert in einen anderen Array??? Wie?
 
Was für eine Art von Array ist das überhaupt und ist dein Array überhaupt (min) b groß ?

hanselmansel 8. Nov 2005 17:28

Re: Arraywert in einen anderen Array??? Wie?
 
Du musst bei Arrays aufpassen, dass du nicht auf eine Zelle zugreifst, die nicht existiert. Wenn das Array statisch nur als
Delphi-Quellcode:
Array[0..9] of TMyType
deklariert ist, dann kannst du mies auf Zelle 35 zugreifen, da diese in diesem Fall nicht existiert. Da musst du beachten, wenn du mit a und b rumspielst. :thumb:

mosquito 8. Nov 2005 17:30

Re: Arraywert in einen anderen Array??? Wie?
 
also ich hab...

Kxa,Kya,Kxb,Kyb: array of integer;

....

setlength(Kxa, 10);
setlength(Kya, 10);
setlength(Kxb, 10);
setlength(Kyb, 10);


....

a:=0;
b:=2;

....

Kxa[b]:=Kxa[a];//hier
Kxb[b]:=Kxa[a]+10;//und hier gehts nicht weiter...
image1.canvas.brush.Color:=clgreen;
image1.Canvas.rectangle(Kxa[b],Kya[b],Kxb[b],Kyb[b]);

hanselmansel 8. Nov 2005 17:33

Re: Arraywert in einen anderen Array??? Wie?
 
Hat nichts mit derLösung deines momentanen Problems zu tun, aber wenn du die Größe der Arrays nicht zur Laufzeit verändern willst, dann benutze
Delphi-Quellcode:
Kxa,Kya,Kxb,Kyb :Array[0..9] of integer;
das ist weniger Schreibarbeit und sieht einfach besser aus. :)

mosquito 8. Nov 2005 17:36

Re: Arraywert in einen anderen Array??? Wie?
 
es kann sein, dass ich haber 100 oder so brauche und daher muss ich ein dynamisches verwenden

Sharky 8. Nov 2005 17:44

Re: Arraywert in einen anderen Array??? Wie?
 
Ich kann in dem was Du zeigst keinen Fehler erkennen.

Hier mein DemoCode:
Delphi-Quellcode:
var
  Kxa, Kya, Kxb, Kyb: array of integer;

procedure TDemoForm.FormCreate(Sender: TObject);
begin
  setlength(Kxa, 10);
  setlength(Kya, 10);
  setlength(Kxb, 10);
  setlength(Kyb, 10);
end;

procedure TDemoForm.btn_CopyArrayClick(Sender: TObject);
var
  a: integer;
  b: integer;
begin
  a := 0;
  b := 2;
  Kxa[b] := Kxa[a];
  Kxb[b] := Kxa[a] + 10;
end;

mosquito 8. Nov 2005 17:47

Re: Arraywert in einen anderen Array??? Wie?
 
aber leider genau an der stelle
Kxa[b] := Kxa[a];
hat er das problem,
also ich kann es komilieren, aber der Fehler kommt erst, wenn das prog zu genau dieser Stelle kommt, dann springt Delphi dahin, zeigts mir an und die Fehlermeldung kommt...
heul

hanselmansel 8. Nov 2005 17:48

Re: Arraywert in einen anderen Array??? Wie?
 
Du könntest einen Breakpoint in die Zeile vor dem Crach setzten, das Progrämmchen laufen lassen, und gucken welche Werte die einzelnen Variablen an der entsprechenden Stelle haben. Vieleicht hast du ja ausversehns a oder b erhöht oder das Array gelöscht. Weiß der Kuckuck. Damit solltest du den Fehler normalerweise finden...

mosquito 8. Nov 2005 17:53

Re: Arraywert in einen anderen Array??? Wie?
 
jetzt ne richtig dumme Frage: wie mach ich bei Delphi7 so ein programmhäckchen???
Ich lerne Delphi aus einem Buch und da ist die Oberfläche nicht so beschrieben... :(

Neutral General 8. Nov 2005 17:55

Re: Arraywert in einen anderen Array??? Wie?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Links neben der Codezeile auf den Rand vom Fenster klicken. Dann wird die Zeile rot und links steht ein roter Punkt.


Hier siehst du wies aussieht :

Sharky 8. Nov 2005 17:59

Re: Arraywert in einen anderen Array??? Wie?
 
Zitat:

Zitat von Neutral General
... Dann wird die Zeile rot und links steht ein roter Punkt. ...

Und dann mit Ctrl-F8 die einzelnen Zeilen durch gehen. Wenn Du dann die Ctrl-Taste gedrück hälst und mit der Maus auf deine Variabla a oder b klickst sollte Dir der aktuelle Wert angezeigt werden.

Mystic 8. Nov 2005 17:59

Re: Arraywert in einen anderen Array??? Wie?
 
Zitat:

Zitat von mosquito
es kann sein, dass ich haber 100 oder so brauche und daher muss ich ein dynamisches verwenden

Arrays mit 100 Zellen sind kein Problem für Delphi.

Delphi-Quellcode:
Kxa, Kya, Kxb, Kyb: array[0..99] of integer;
1000 Arrays mit 1000 Zellen auch nicht.

Neutral General 8. Nov 2005 18:04

Re: Arraywert in einen anderen Array??? Wie?
 
wobei dynamische Array da schon sinnvoll sind weil wenn der Benutzer dann nur 10 braucht man die anderen 90 Integer ja nicht und das wäre ja dann unnötiger Speicherverbrauch ;)

Mystic 8. Nov 2005 18:13

Re: Arraywert in einen anderen Array??? Wie?
 
Oh, bitte. 400 Integer belegen 1.6KB.

Neutral General 8. Nov 2005 18:16

Re: Arraywert in einen anderen Array??? Wie?
 
Naja bei 90 Integern spart man immerhin fast 0,4KB...
Stell dir ma vor ein User hat nen älteren Computer der nur vielleicht 64KB Arbeitsspeicher hat.. wenn überhaupt.. da macht das schon ne ganze Menge aus.. Man muss auch die Leute bedenken die keinen High-End PC haben :wink: :mrgreen:

SirThornberry 8. Nov 2005 18:21

Re: Arraywert in einen anderen Array??? Wie?
 
Leider hast du ja die Fehlermeldung nicht vollständig da stehen. Kommt die AccessViolation direkt bei Adresse 0 oder kommt irgendwann doch eine andere Zahl bei der Adresse ungleich 0? Wenn die Zugriffsverletzung dierekt bei Adresse 0 kommt hast du vermutlich die Instanz des Objectes nicht erzeugt in dem sich das array befindet.

alzaimar 8. Nov 2005 18:22

Re: Arraywert in einen anderen Array??? Wie?
 
Zitat:

Zitat von Mystic
Oh, bitte. 400 Integer belegen 1.6KB.

Super gerechnet :zwinker:. Es gibt auch sowas wie Ästhetik. Ein Programm sollte sowohl für 10, als auch für 10.000.000 Elemente funktionieren, sofern keine Obergrenze in der Problemdefinition angegeben ist.

Zum Thema:
Delphi-Quellcode:
Var
  ka, kb : Array of Integer;
  a,b : Integer;

Begin
  SetLength (ka,10); SetLength (kb,10);
  a:=2;
  b:=3;
  ka[a] := kb[b];
End;
Funktioniert 100%. Bitte mal in Dein delphi kopieren und kompilieren, danach ausführen. Wenn Du einen Laufzeitfehler bekommst, dann deinstalliere Delphi und pack es nochmal rauf. Kommt der Laufzeitfehler immer noch, wechsle den PC. Kommt der Fehler immer noch, sag Bescheid. Dann werde ich Gärtner.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:16 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz