Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di IAL32
    Registrato dal
    Aug 2011
    Messaggi
    88

    [VB2010]Leggere da un determinato offset fino ad un determinato offset

    Il mio codice fin'ora attuato è questo:
    Codice PHP:
            Dim read1 As New FileStream(FNameFileMode.OpenFileAccess.Read)
            
    Dim br As New BinaryReader(read1)
            
    br.BaseStream.Seek(&HCSeekOrigin.Current)
            
    Dim a As String br.ReadInt64()
            
    MessageBox.Show(a
    Ma il messagebox non mi restituisce il valore che ha il mio file fino all'offset C,...qualche consiglio?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Non si capisce quale sia il problema.

    Cosa contiene il tuo file ? Cosa leggi ?

    A che serve buffer ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it L'avatar di IAL32
    Registrato dal
    Aug 2011
    Messaggi
    88
    Il contenuto del file è vario;
    comunque a me serve che il programma legga dall'offset 0 all'offset C, per poi restituirmi il valore corretto per poi convertirlo in stringa ed utilizzarlo a mio piacimento. Non so se si capisce
    Buffer è capitato lì per caso, non c'entra col codice attuale, lo tolgo.

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Se ti serve dall'offset 0, perché ti posizioni all'offset C ?

    Questa linea

    br.BaseStream.Seek(&HC, SeekOrigin.Current)

    fa partire la lettura *da* C non *fino* a C ...

    E se leggi un Int64 vuol dire che vuoi leggere 8 byte (in ordine inverso) mentre tu ne vuoi leggere 13 (da 0 a C compreso) anche se non si sa in quale ordine.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it L'avatar di IAL32
    Registrato dal
    Aug 2011
    Messaggi
    88
    Quindi secondo te come dovrei fare? Grazie dell'aiuto

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Come ti ho detto ... la Seek va fatta da 0 e non da C e poi non devi leggere un Int64 (a che pro?) ma un buffer di 12 byte (o 13 byte se leggi fino a C compreso ..).
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it L'avatar di IAL32
    Registrato dal
    Aug 2011
    Messaggi
    88
    Ho risolto:
    Codice PHP:
    Dim Stringa As [Char]() = New [Char](13) {}
                
    Dim rdr As New FileStream(FNameFileMode.OpenFileAccess.Read)
                
    Dim brdr As New BinaryReader(rdr)
                For 
    As Integer 0 To 13
                    Stringa
    (i) = brdr.ReadChar()
                
    Next 

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Così ne leggi 14 (da 0 a 13) ... e il ciclo non serve se usi ReadChars

    Bastano queste 3 linee
    codice:
    Dim rdr As New FileStream(FName, FileMode.Open, FileAccess.Read)
    Dim brdr As New BinaryReader(rdr)
    Dim Stringa As String = brdr.ReadChars(13)
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.