We help IT Professionals succeed at work.

We've partnered with Certified Experts, Carl Webster and Richard Faulkner, to bring you two Citrix podcasts. Learn about 2020 trends and get answers to your biggest Citrix questions!Listen Now

x

Using Variant Arrays

westy100697
westy100697 asked
on
Medium Priority
227 Views
Last Modified: 2010-04-04
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}
Comment
Watch Question

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

Not the solution you were looking for? Getting a personalized solution is easy.

Ask the Experts

Author

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 !
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
Access more of Experts Exchange with a free account
Thanks for using Experts Exchange.

Create a free account to continue.

Limited access with a free account allows you to:

  • View three pieces of content (articles, solutions, posts, and videos)
  • Ask the experts questions (counted toward content limit)
  • Customize your dashboard and profile

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.