![]() |
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 |
Re: Array Problem -------------------
hm. Ja und zuerst änderst Du bitte den Titel Deines Themas. Das sieht so gar nicht schön aus. ;-)
|
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. |
Re: Arraywert in einen anderen Array??? Wie?
jaja, sry, so besser???
und helft mir jetzt bidde |
Re: Arraywert in einen anderen Array??? Wie?
Delphi-Quellcode:
var a : array[1..5] of Integer;
b : array[1..5] of Integer;
Delphi-Quellcode:
Wie schon im Quelltext zu sehn : Bei mir geht das...
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; |
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]; |
Re: Arraywert in einen anderen Array??? Wie?
Zitat:
damit kopierst Du ja nicht zwichen zwei Arrays sonder Du kopierst den Inhalt des Arrays von possition a in die position b. |
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??? |
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:
:zwinker:
a := 1;
//und b := 2; //Dann ist die Zuweisung kx[b] := kx[a]; //eher kx[2] := kx[1]; |
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].. |
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 |
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. |
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ß ?
|
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:
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:
Array[0..9] of TMyType
|
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]); |
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:
das ist weniger Schreibarbeit und sieht einfach besser aus. :)
Kxa,Kya,Kxb,Kyb :Array[0..9] of integer;
|
Re: Arraywert in einen anderen Array??? Wie?
es kann sein, dass ich haber 100 oder so brauche und daher muss ich ein dynamisches verwenden
|
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; |
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 |
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...
|
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... :( |
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 : |
Re: Arraywert in einen anderen Array??? Wie?
Zitat:
|
Re: Arraywert in einen anderen Array??? Wie?
Zitat:
Delphi-Quellcode:
1000 Arrays mit 1000 Zellen auch nicht.
Kxa, Kya, Kxb, Kyb: array[0..99] of integer;
|
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 ;)
|
Re: Arraywert in einen anderen Array??? Wie?
Oh, bitte. 400 Integer belegen 1.6KB.
|
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: |
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.
|
Re: Arraywert in einen anderen Array??? Wie?
Zitat:
Zum Thema:
Delphi-Quellcode:
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.
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; |
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