Reading a binary file written in VB6 gives an error.

Arthy67

New member
Joined
Dec 30, 2019
Messages
3
Programming Experience
1-3
Hi,

Here I am with an other problem.

In VB6 I read the binary file like this:

VB.NET:
    Libero = FreeFile
    Open NomeFileArchivio For Binary As #Libero
        
        Get #Libero, , RitardiEstrattiPrecedentiTutte
        Get #Libero, , RitardiEstrattiPrecedentiSingola
        Get #Libero, , RitardiEstrattiTutte
        Get #Libero, , RitardiEstrattiSingola
        Get #Libero, , RitardoEstrattiStoricoTutte
        Get #Libero, , RitardoEstrattiStoricoSingola
        Get #Libero, , FrequenzeEstrattiTutte
        Get #Libero, , FrequenzeEstrattiSingola
        Get #Libero, , RitardiAmbiTutte
        Get #Libero, , RitardiAmbiSingola
        Get #Libero, , RitardoAmbiStoricoTutte
        Get #Libero, , RitardoAmbiStoricoSingola
        Get #Libero, , FrequenzeAmbiTutte
        Get #Libero, , FrequenzeAmbiSingola
        Get #Libero, , RitardiTerniTutte
        Get #Libero, , RitardiTerniSingola
        Get #Libero, , RitardoTerniStoricoTutte
        Get #Libero, , RitardoTerniStoricoSingola
        Get #Libero, , FrequenzeTerniTutte
        Get #Libero, , FrequenzeTerniSingola
        Get #Libero, , QuadroGemelli
        Get #Libero, , QuadroVertibili
        Get #Libero, , QuadroCadenza
        Get #Libero, , QuadroDecinaNaturale
        Get #Libero, , QuadroDecinaCabalistica
        Get #Libero, , QuadroFigura
        Get #Libero, , QuadroControFigura
        Get #Libero, , QuadroCifra
        Get #Libero, , QuadroCifraPura
        Get #Libero, , QuadroCifraImpura
        Get #Libero, , QuadroCifraComposta
        Get #Libero, , QuadroTricifriche
        Get #Libero, , QuadroRadicali
        Get #Libero, , QuadroTerzineSimmetriche
        Get #Libero, , QuadroTerzineGemelli
        Get #Libero, , QuadroTerzineCoesionali
        Get #Libero, , QuadroSettineAlfa
        Get #Libero, , QuadroSettineBeta
        Get #Libero, , QuadroQuartineSimmetriche
        Get #Libero, , QuadroCinquineSimmetriche
        Get #Libero, , QuadroCinquinePariDispari
        Get #Libero, , QuadroAmbiComplementari
        Get #Libero, , QuadroAmbiDadologici
        Get #Libero, , QuadroAmbiDivisoreComune
        Get #Libero, , QuadroAmbiSimmetrici
        Get #Libero, , QuadroAmbiSomma11
        Get #Libero, , QuadroTriploni
        Get #Libero, , QuadroSestineCircolari
        Get #Libero, , QuadroSestinePassoMultiplo
        Get #Libero, , QuadroSestineComplementari
        Get #Libero, , QuadroGrattacieloSuperSimmetrico
        Get #Libero, , QuadroSestineSomma273
        Get #Libero, , QuadroSimpaticiCabalistici1
        Get #Libero, , QuadroSimpaticiCabalistici10
        Get #Libero, , QuadroSimpaticiCabalistici20
        Get #Libero, , QuadroSimpaticiCabalistici30
        Get #Libero, , QuadroSimpaticiCabalistici40
        Get #Libero, , QuadroSimpaticiCabalistici50
        Get #Libero, , QuadroSimpaticiCabalistici60
        Get #Libero, , QuadroSimpaticiCabalistici70
        Get #Libero, , QuadroSimpaticiCabalistici80
        Get #Libero, , QuadroNoninaConsecutiva1
        Get #Libero, , QuadroNoninaConsecutiva2
        Get #Libero, , QuadroSestineSimmetriche1
        Get #Libero, , QuadroSestineSimmetriche2
        Get #Libero, , QuadroSestineConvergenti1
        Get #Libero, , QuadroSestineConvergenti2
        Get #Libero, , QuadroSestineConvergenti3
        Get #Libero, , QuadroSestineConvergenti4
        Get #Libero, , QuadroSestineConvergenti5
        Get #Libero, , QuadroSestineConvergenti6
        
        'Legge il numero totale di Estrazioni
        Get #Libero, , NumeroTotaleEstrazioni
        Totale = 0
        'Legge l'Archivio delle Estrazioni
        
        Do While Totale < NumeroTotaleEstrazioni
            Totale = Totale + 1
            Get #Libero, , ArchivioEstrazioni(Totale)
            
            ...................................

    Close #Libero

Each line is a Type with array mono and multidimensional.

When I try to read in VB.Net with:

VB.NET:
        Libero = FreeFile()
        FileOpen(Libero, NomeFileArchivio, OpenMode.Binary)

        FileGet(Libero, RitardiEstrattiPrecedentiTutte)
        FileGet(Libero, RitardiEstrattiPrecedentiSingola)
        FileGet(Libero, RitardiEstrattiTutte)
        FileGet(Libero, RitardiEstrattiSingola)
        FileGet(Libero, RitardoEstrattiStoricoTutte)
        FileGet(Libero, RitardoEstrattiStoricoSingola)
        
        .............................

it gives me the following error:
System.IO.EndOfStreamException: 'Could not read beyond the end of the stream.'

The reading of the file stops before the actual end of the file, instead in VB6 it loads correctly.

I read that VB.NET create the file with FilePut, so I suppose the format is different from VB6.
Is it possible to read it anyway?

Thanks, Arturo.
 

JohnH

VB.NET Forum Moderator
Staff member
Joined
Dec 17, 2005
Messages
15,516
Location
Norway
Programming Experience
10+
Top Bottom