webForumDet fria alternativet

Byte Manipulation

2 svar · 160 visningar · startad av PsyDonia

PsyDoniaMedlem sedan maj 2003924 inlägg
#1

:q
Hej har två frågor.

Hur gör man så man öppnar en fil och sen tar bort dom 20 första byten.

andra frågan är tvärt om. om jag har en fil men vill lägga in
20 nya byte i början av en fil.

t.ex.
Jag har en fil och den är 20 byte stor.
dom 20 byten vill jag ha i början på en annan fil hur skulle jag gå tillväga då.

nikoMedlem sedan juni 20022 599 inlägg
#2

Kan inte påstå att det känns så smart, men det borde funka om det inte är våldsamt stora filer:

a.)
Dim bByteArray() As Byte, bNyData() As Byte
Dim iFree As Long
iFree = FreeFile
Open <dinfil> For Binary As #iFree
ReDim bByteArray(1 To LOF(iFree)) As Byte
Get #iFree, , bByteArray 'Läs upp den gamla datan.
Close #iFree
Kill <dinfil>	'Ta bort filen.
Open <dinfil> For Binary As #iFree
ReDim bNyData(21 To UBound(bByteArray)) As Byte
Dim l As Long
For l = 21 To UBound(bByteArray)
    bNyData(l) = bByteArray(l) 'Ta bort 20 första.
Next l
Put #iFree, , bNyData  'Skriv ner den nya datan.
Close #iFree

b.)
Dim bByteArray() As Byte
Dim iFree As Long
iFree = FreeFile
Open <dinfil> For Binary As #iFree
ReDim bByteArray(1 To LOF(iFree)) As Byte
Get #iFree, , bByteArray 'Läs upp den gamla datan.
Put #iFree, 1, <20 bytes>	'Skriv över de 20 första byten.
Put #iFree, , bByteArray 'Lägg tillbaks det gamla på slutet.
Close #iFree
PsyDoniaMedlem sedan maj 2003924 inlägg
#3

ok tack ska testa det.
Dom filerna som det handlar om är kanske 50-100kb.
Så det är inga stora filer.

126 ms totalt · 3 externa anrop · v20260731065814-full.0e50b1ef
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)