Re: Add/remove zero index of array



Yeah, if I wanted to rewrite a pile of code. ;p

Once the array is read, it is used throughout the program in a number of
ways, and the internally created record 0 becomes an important part of the
array data at that point. Some of the array data (including record 0) gets
displayed in a sorted listbox and the array index is stored in the ItemData
property. So eliminating record 0 from the array just complicates a bunch of
existing code that's currently working perfectly.

--
Tim Rude

timrude@xxxxxxxxxxxxxxxxxx
(remove NOSPAM. for correct email address)

"Randy Birch" <rgb_removethis@xxxxxxxx> wrote in message
news:eK85QbmRIHA.4272@xxxxxxxxxxxxxxxxxxxxxxx
I would question the need for the 0 member at all, given - from your
description - that you are only using the data this contains internally in
the app and never saving to disk. Would not a separate dimmed variable for
the data you put into the 0 member not work?

--


Randy
http://vbnet.mvps.org/


"Tim Rude" <timrude@xxxxxxxxxxxxxxxxxx> wrote in message
news:uooT1NmRIHA.2376@xxxxxxxxxxxxxxxxxxxxxxx
Ralph,

Thanks for your input. I think I've actually got it sorted out now.

I'm using a trick suggested by RB Smissaert to adjust the LBound and
UBound
of my array, and then shifting each record up or down. It works and it
seems
very fast.

--
Tim Rude

timrude@xxxxxxxxxxxxxxxxxx
(remove NOSPAM. for correct email address)

"Ralph" <nt_consulting64@xxxxxxxxx> wrote in message
news:u4gbTCmRIHA.2268@xxxxxxxxxxxxxxxxxxxxxxx
Comments inline ...

"Tim Rude" <timrude@xxxxxxxxxxxxxxxxxx> wrote in message
news:OXDRFYlRIHA.5288@xxxxxxxxxxxxxxxxxxxxxxx
<snipped>

DB( ) is a single-dimension array of UDT records. The UDT consists
only
of
fixed length strings (i.e. String * 10, etc.). Each UDT record is 322
bytes
long.

'==========
Dim FH as Integer
Dim NumOfRecs as Long
Dim DB() as MyUDT

FH = FreeFile
Open DataFile For Binary Shared As #FH

' if the dummy is the same size as MyUDT
Dim dummy As MyUDT

NumOfRecs = LOF(FH) \ 322

NumOfRecs = NumOfRecs - 1
Get #FH, , dummy

ReDim DB(1 To NumOfRecs - 1)
Get #FH, , DB 'Read entire file into array
Close #FH

ReDim Preserve DB(0 to UBound(DB)) 'This is what I need to do but VB
won't
do it
'==========
<snipped>

If it is a different size, say 300 bytes, do something like this...
[Warning Air Code!]

Dim dummy As String : dummy = String( 300, " ")
Get #FH, , dummy
Dim NumOfRecs As Long : NumOfRecs = LOF(FH) - 300
NumOfRecs = NumOfRecs / 322
...

-ralph







.



Relevant Pages

  • Re: Standard query: Bounds of allocatable components from derived-type constructors?
    ... If ARRAY is a whole array or array structure component and either ... ARRAY is an assumed-size array of rank DIM or dimension DIM of ARRAY ... dummy argument arrays are always equivalent to assumed shape. ... array to be passed to the called routine, retaining bounds information. ...
    (comp.lang.fortran)
  • Re: Add/remove zero index of array
    ... NumOfRecs = NumOfRecs - 1 ... I think this would work if the problem was that the stored data was ... MyUDTarray and then go from there. ... But again that changes code - me ...
    (microsoft.public.vb.general.discussion)
  • Re: Detecting a running process.
    ... Private Declare Function EnumProcessModules Lib "psapi.dll" _ ... (ByVal dwProcessID As Long, _ ... Dim nProcesses As Long ... 'fill an array of longs with the ...
    (microsoft.public.vb.winapi)
  • Re: Updated datestamp doesnt work
    ... Public Sub StoreMyOldVals ... ' store values of current row in array ... Dim dbs As DAO.Database, rst As DAO.Recordset ... Dim var As Variant ...
    (microsoft.public.access.gettingstarted)
  • Re: Updated datestamp doesnt work
    ... Public Sub StoreMyOldVals ... ' store values of current row in array ... Dim dbs As DAO.Database, rst As DAO.Recordset ... Dim var As Variant ...
    (microsoft.public.access.gettingstarted)

Loading