Richard87 Skrevet 19. juli 2006 Skrevet 19. juli 2006 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
GeirGrusom Skrevet 19. juli 2006 Skrevet 19. juli 2006 Husk at Random er oversatt, det du skriver er ikke det du får F.eks. legger den til lendge på arrays, strings, strukturer etc. Jeg bruker alltid Binary mode.
Richard87 Skrevet 19. juli 2006 Forfatter Skrevet 19. juli 2006 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?
aadnk Skrevet 21. juli 2006 Skrevet 21. juli 2006 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.
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå