Toon posts:

[Delphi] Dynamische Array Copieren

Pagina: 1
Acties:

Verwijderd

Topicstarter
Damn, ik ben eigenlijk al de hele dag hier mee bezig:
Ik wil graag dat ik een Dynamische Array kan copieren naar een andere, (dus eigenlijk om ff te storen en dan naar een volgende wil zetten.
vb:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
var
feelingArray : array of String;

procedure blaat ();
var
tempArray: array of String;
size : integer;
begin

setLength(tempArray, 7); //de maximale groote van de array
//De array word hier gevuld met strings:
tempArray[0] := 'neutraal';
etc...
//Array is gevuld met bv 4 strings
size := getArraySize(tempArray); //size wordt 4, door een functie die het aantal
-> gevulde indexes telt
tempArray:= Copy(tempArray, 0, size); //tempArray wordt ingekort..
//En dan nu het gedeelte dat ik niet aan de gang krijg..
setLength(feelingArray, size); //wil de zelfde groote hebben...
feelingArray := tempArray; //dit wil niet werken.. Ik krijg de error incompatible
-> types, terwijl ze allbei de zelfde grote en zelfde type zijn (String)??
end;


Ik heb het ookal geprobeerd mbv een loopje alleen dan lukt het ook niet:
code:
1
for i:=0 to Length(feelingArray) do feelingArray[i] := tempArray[i];


Wat doe ik toch verkeerd??

[ Voor 2% gewijzigd door Verwijderd op 14-06-2003 16:20 . Reden: ff een paar enters er tussen gezet ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 01:57
Wat lukt er dan precies niet?

Hoe kunnen we je helpen als je niet zegt wat er juist fout loopt?

Trouwens, je kan ook een TStringList gebruiken.

https://fgheysels.github.io/


Verwijderd

Topicstarter
feelingArray := tempArray; //dit wil niet werken.. Ik krijg de error incompatible
-> types, terwijl ze allbei de zelfde grote en zelfde type zijn (String)??
dus eigenlijk alleen het feelingArray := tempArray;
ik heb het namelijk ookal met de Copy Functie geprobeerd, maar ook dat moch niet baten.

edit: ik zal iig ff naar TStringList kijken

[ Voor 9% gewijzigd door Verwijderd op 14-06-2003 16:30 ]


  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 26-06 10:37

OZ-Gump

terug van weggeweest

Zet eens watches op allebei de arrays en kijk dan even hoe ze er allebei uitzien op het moment dat je ze wil gaan kopieren. Ergens gaat er iets mis, en met een watch zie je soms dingen die je graag anders had gezien ;)

My personal website


  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 22-06 10:32

_Thanatos_

Ja, en kaal

Als je het *echt* met dynamische arrays wilt doen (ik zou ook TStringList aanraden en dan de Assign methode gebruiken)...

Je zou dan een type moeten definieren, zoals hieronder:
Delphi:
1
2
type
  TStringArray = array of string;

Als je dan de twee arrays in kwestie van dát type maakt, kun je ze wel gewoon assignen:
Delphi:
1
2
3
4
5
6
var
  A, B: TStringArray;
begin
{ vul array A }
B := A;
end;

日本!🎌


Verwijderd

Topicstarter
OZ-Gump schreef op 14 June 2003 @ 18:06:
Zet eens watches op allebei de arrays en kijk dan even hoe ze er allebei uitzien op het moment dat je ze wil gaan kopieren. Ergens gaat er iets mis, en met een watch zie je soms dingen die je graag anders had gezien ;)
Om heel eerlijk te zijn, weet ik niet precies wat je bedoelt met watches, of bedoel je bij het debuggen "breaks" neer zetten?

@dude boven mij, dat is een goed idee TNX :D

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 22-06 10:32

_Thanatos_

Ja, en kaal

Watches zijn vrij elementair in delphi. je selecteert @runtime in je IDE een variabele, ramt op Ctrl+F5 en je krijgt tijdens het debuggen "live" te zien wat de inhoud van die variabele is (mits je in de juiste scope zit, variabelen in andere functies zijn natuurlijk out-of-scope en bestaan dan dus niet).

日本!🎌

Pagina: 1