• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 212
  • Last Modified:

Using Variant Arrays

My question is this. I am using the type variant in a program I am writing. Now I created an array using
varArrayCreate and I will put some sample sode below. Now it is easy to read data into the variant array except when you get to the last record to read in and I keep getting list index out of bounds. Now I have tried a few different things to try and stop giving me this error. For example, if I made
the following array
tempArray := varArrayCreate([1,10],varVariant) I tried to
read in only up to tempArray[9] and still get list index is out of bounds. Now this is imossible since I am not at the end of the array. Very strange and if anyone can shed some light on this let me know. I must to doing some damn simple
the wrong way. I had a full head of hair before this problem came up. Cheers.

If (Table2.Findkey([TempJobNo]) = false) then
begin
  TotalFields := Table1.FieldCount ;
  TempArray := varArrayCreate([0,TotalFields-1],varVariant);
    For i := 0 to TotalFields-1 do
    begin
      TempArray[i] := Table1.Fields[i].AsVariant ;
      Table1.Next ;
      TempJobNo := Table1.Fieldbyname('JOB_NO').AsString ;
    end
    else
    begin
      Table1.Next ;
      TempJobNo := Table1.Fieldbyname('JOB_NO').AsString ;
    end;
  end;

 {THANKS IN ADVANCE ANYONE}
0
westy100697
Asked:
westy100697
  • 2
1 Solution
 
Pegasus100397Commented:
Westy,

Your right, sometimes it does help to have another programmer look over your code (works for me!). Anyway your problem is in the Table1.FieldCount loop, it SHOULD be:

TotalFields := Table1.FieldCount-1 ;
TempArray := varArrayCreate([0,TotalFields],varVariant);
For i := 0 to TotalFields do
begin
TempArray[i] := Table1.Fields[i].AsVariant ;

The Array is going out of bounds because of the Fields[i] reference.

Good luck with your project!
Pegasus
0
 
westy100697Author Commented:
Hey thanks for the help but solved the problem by going away and having a cuppa and it came to me all of a sudden. Happens a lot when you relax for while and come back to it. Will give you the points though cause it is exactly the prob. Thanks muchly !
0
 
Pegasus100397Commented:
Glad to be of help Westy!

You'll have to reject or accept the answer before the Expert Exchange system will clear it from the list of QX's awaiting answers.

Regards
Pegasus
0

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now