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.
 
Top Bottom