Jump to content
estica

BinaryReader

Recommended Posts

estica

Boas pessoal,

Uso o seguinte código para ler a info de um determinado ficheiro.

Agora é assim... Com o código ele vai ler a lista completa. Por exemplo começando no offset 1 com intervalo de 10...

O que eu queria era dar ordem para ele parar no offset 100 por exemplo.

Using c As New System.IO.BinaryReader(System.IO.File.Open((fileDialogBox.FileName), System.IO.FileMode.Open))

For i As Long = 1 To c.BaseStream.Length - 1 Step 10

c.BaseStream.Seek(i, System.IO.

SeekOrigin.Begin)

Dim Temp As String = c.ReadUInt16

ListView1.Items(ItemCounter).SubItems(1).Text = Temp

ItemCounter += 1

Next

End Using

Share this post


Link to post
Share on other sites
He B TeMy

Em vez de

c.BaseStream.Length

metes 100... ou eu não percebi a pergunta?

Edited by He B TeMy
  • Vote 1

Share this post


Link to post
Share on other sites
estica

Ou seja, eu tenho um determinado ficheiro e estou a ler o hex para poder edita-lo.

Se eu usar assim:

For i As Long = 1 To c.BaseStream.Length - 1 Step 10

Vai carregar desde o offset "1" até ao fim com um intervalo de "10"

E se eu usar assim

For i As Long = 1 To 100 - 1 Step 10

Vai carregar uma lista começando no offset "1" até ao "100" com intervalo de "10"

Share this post


Link to post
Share on other sites
He B TeMy

Edit: Podes ligar na mesma a option strict, mas o que eu disse tava errado ;)

Edited by He B TeMy
  • Vote 1

Share this post


Link to post
Share on other sites
ribeiro55

He B TeMy, O Option Strict não te vai chatear aqui.

Qual o problema do For i As Long? Usas o datatype que tiveres de usar para a iteração...

Até podes precisar de coisas mais estranhas, por exemplo:

For i As Single = 0 To 100 Step 0.1F
'coisas
Next

Neste caso (o caso do poster original) o Long é apropriado porque:

1. Integer (32, signed) não é suficiente para iterar ficheiros com mais de 2147483647 bytes (aprx 2GB)

2. É o tipo de BaseStream.Length (por a mesma razão do 1)


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Share this post


Link to post
Share on other sites
He B TeMy

Ups, tens razão, normalmente no .net framework as propriedades .length são quase todas int que nem pensei.

  • Vote 1

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.