marquinho
asked on
Dinamic array
I want some code regarding to make an array in run time
any number of items I want.
number of items will be defined at the moment I need the array.
thanks in advance
any number of items I want.
number of items will be defined at the moment I need the array.
thanks in advance
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
This shows a way to do it! Showed to me by frodo!
Hope this helps!
VSF
www.victory.hpg.com.br
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Grids, Buttons, Menus, ComCtrls;
Type
Mat_Array = Array of array of Real; (* 2-D Matrix of Reals *)
Int_Array = Array of Integer; (* 1-D Matrix of Integers *)
.
.
.
Var
Form1: TForm1;
COEFF_MAT : Mat_Array; (* User Input : Coefficient Matrix of system *)
orDER_VECT : Int_Array; (* Defined to pivot rows where necessary *)
.
.
.
Procedure tform1.Initialize_Array( Var Coeff_Mat : Mat_Array ; Var order_Vect : Int_Array);
(*** This Procedure initializes all matrices to be used in Program ***)
Var
I, J : Integer;
begin
//Dynamic Arrays support
j:=stringgrid1.rowcount; //This is where size comes from
//Vector
SetLength(order_Vect, j);
//Matrice
SetLength(Coeff_Mat, j);
for i:= Low(Coeff_Mat) to High(Coeff_Mat) do
SetLength(Coeff_Mat[i], j);
end;
Hope this helps!
VSF
www.victory.hpg.com.br
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Grids, Buttons, Menus, ComCtrls;
Type
Mat_Array = Array of array of Real; (* 2-D Matrix of Reals *)
Int_Array = Array of Integer; (* 1-D Matrix of Integers *)
.
.
.
Var
Form1: TForm1;
COEFF_MAT : Mat_Array; (* User Input : Coefficient Matrix of system *)
orDER_VECT : Int_Array; (* Defined to pivot rows where necessary *)
.
.
.
Procedure tform1.Initialize_Array( Var Coeff_Mat : Mat_Array ; Var order_Vect : Int_Array);
(*** This Procedure initializes all matrices to be used in Program ***)
Var
I, J : Integer;
begin
//Dynamic Arrays support
j:=stringgrid1.rowcount; //This is where size comes from
//Vector
SetLength(order_Vect, j);
//Matrice
SetLength(Coeff_Mat, j);
for i:= Low(Coeff_Mat) to High(Coeff_Mat) do
SetLength(Coeff_Mat[i], j);
end;
Qualquer problema marquinho... e so perguntar!
Hi,
Some basics:
Var
DynArray : array of "Byte,Word,Dword, String..."
Use "SetLength" to set the item count of a dynamic array!!!
SetLength(DynArray, 5); // = array[0..4] of "....."
if you close your app. you should set the dynamic array
item count to 0
SetLength(DynArray, 0);
Example:
Var
DynArray : array of array of byte;
z : Byte;
Begin
SetLength(DynArray, 5);
For z := 0 to 4 do
SetLength(DynArray[z], 5);
// = array[0..4, 0..4] of byte;
DynArray[0, 1] := 7;
SetLength(DynArray, 1);
DynArray[0, 2] := 8;
SetLength(DynArray, 0);
End;
GL
Bug
Some basics:
Var
DynArray : array of "Byte,Word,Dword, String..."
Use "SetLength" to set the item count of a dynamic array!!!
SetLength(DynArray, 5); // = array[0..4] of "....."
if you close your app. you should set the dynamic array
item count to 0
SetLength(DynArray, 0);
Example:
Var
DynArray : array of array of byte;
z : Byte;
Begin
SetLength(DynArray, 5);
For z := 0 to 4 do
SetLength(DynArray[z], 5);
// = array[0..4, 0..4] of byte;
DynArray[0, 1] := 7;
SetLength(DynArray, 1);
DynArray[0, 2] := 8;
SetLength(DynArray, 0);
End;
GL
Bug
ASKER
CrazyOne
is any way to setup an array?
I mean once you need a new item adding or deleting without deleting the rest of the items.
Thanks a lot CrazyOne
also I have to say thanks VSF and bugroger
is any way to setup an array?
I mean once you need a new item adding or deleting without deleting the rest of the items.
Thanks a lot CrazyOne
also I have to say thanks VSF and bugroger
Well when you increase the size of the array it will retain what is already in it so you don't lose anything that is already there. I believe when you decrease the size of the array the data in the array will be retained except obviously the portion of the array that is getting chopped off.
For an example let us say the array is a string and we have now dimensioned the array for 3 elements and we have populated the array like this
('a', 'b', 'c')
now we increase it by one so there are 4 elements to the array and we have as of yet populated this new element it would look like this
('a', 'b', 'c', '')
now we populate the 4th element with a d so now it looks like this
('a', 'b', 'c', 'd')
now we want to remove two of the elements so we would be left with two elements it would look like this
('a', 'b')
now if data that you wanted to retain was this instead
('b', 'd')
I think one would need to have a companion secondary array to hold the data desired and after dimensioning the array repopulate the array with the secondary array.
For an example let us say the array is a string and we have now dimensioned the array for 3 elements and we have populated the array like this
('a', 'b', 'c')
now we increase it by one so there are 4 elements to the array and we have as of yet populated this new element it would look like this
('a', 'b', 'c', '')
now we populate the 4th element with a d so now it looks like this
('a', 'b', 'c', 'd')
now we want to remove two of the elements so we would be left with two elements it would look like this
('a', 'b')
now if data that you wanted to retain was this instead
('b', 'd')
I think one would need to have a companion secondary array to hold the data desired and after dimensioning the array repopulate the array with the secondary array.
I am curios if you meant to give a B grade for this question. Not looking to start a debate with you about the grade but I am tring to clarify if the grading defaults to a B or if the questioner is setting the grade to a B. Lots of Experts have being getting B's lately which seems to indicate that the system is defaulting to a B. If you truly feel my comment is only worth a B that is cool with me I have no problem with that but like I said I am trying to find out if it is something the EE system is doing, :>)
var
sWhereGen: array of string;
i: Integer;
begin
for i := 0 to WhatEver
SetLength(sWhereGen, i);
end;
The Crazy One