Gå til innhold

"Bad Record Lenght", random access


Anbefalte innlegg

Skrevet

Jeg prøver og åpne en file i Random Access mode, men hver gang jeg prøver og legge til ett binert array (bData(1067)), på nøyaktig 1068 bytes, så får jeg feilmeldingen...

 

her er koden som lager feilene:

 

(Funksjonen som motar pakken:)

Private Sub winpcap_OnPacket(ByVal p As PacketXLibCtl.IPktXPacket)
If p.DestPort = 22222 And p.DestIpAddress = "224.2.2.1" Then
   Dim bPacket() As Byte
   Static lCount As Long
   lCount = lCount + 1
   bPacket = p.DataArray
   
   'Get the data
   Dim bData(Record_Size - 1) As Byte
   CopyMemory bData(0), bPacket(86), Record_Size
   
   'Get the posistion
   Dim lPos As Long
   lPos = GetLong(bPacket(46), bPacket(47), bPacket(48), bPacket(49))

   File.SetData lPos, bData
End If
End Sub

 

(Funksjonen som lagrer data'en til disk)

Public Function SetData(pos As Long, bData() As Byte) As Boolean
Debug.Print pos, LBound(bData), UBound(bData)
On Error GoTo err2
SetData = False
If Not UBound(bData) >= Record_Size Then
   If bOpen Then
       Dim b(Record_Size) As Byte
       CopyMemory b(0), bData(0), UBound(bData) + 1
       Put #lFree, pos, b
       SetData = True
   End If
End If

Exit Function
err2:
SetData = False
Debug.Print Err.Description, Err.Number
End Function

 

Jeg prøvde først og bruke

 

Put #lFree, pos, bData

 

men fikk samme feilmelding, begynte og tro at det hvar fordi bData hadde variabel lengde, men når jeg får samme feilmelding med Dim b(Record_Size) As byte så begynner jeg og lure...

 

btw, jeg åpner Filen slik:

Const Record_Size = 1068

Public Function Load() As Boolean
lFree = FreeFile

On Error GoTo err2

Open FileName For Random As #lFree Len = Record_Size
bOpen = True
Load = True

Exit Function
err2:
Debug.Print Err.Description, Err.Number
If bOpen Then bOpen = False
Close #lFree

Load = False
End Function

 

 

For og teste programmet må du ha Winpcap og PacketX innstalert(alt følger med i vedlegget...)

winpcap.zip

Videoannonse
Annonse
Skrevet

Er det noen som har et forslag til hvordan jeg kan lagre en haug av pakker på 1068bytes hver(ca 13000), hvor pakkene _IKKE_ kommer sammenhengende?

Skrevet
Er det noen som har et forslag til hvordan jeg kan lagre en haug av pakker på 1068bytes hver(ca 13000), hvor pakkene _IKKE_ kommer sammenhengende?

6519370[/snapback]

Gjør noenlunde det samme, men med For Binary[/i[ i stedet for For Random.

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...