Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    141

    Scrittura su file casuale con VB6

    Io vorrei sapere perche quando scrivo la stringa ad esempio "ap", se la scrivo poche volte (es 3) vedo il f ile "pulito", ma se la scrivo invece 300 volte il file è "sporco" e compaioni delle altre lettre all'apparenza casuali tra le stringhe che ho voluto scrivere.
    E' normale, a me appare un sistema di criptaggio automatico o quanto meno un tentativo di rendere più illeggibile il file. Sbaglio??
    C'è un modo per eliminare tale problema?? Grazie per la collaborazione

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    A me sembra solamente che tu abbia sbagliato a scrivere il codice ...

    Che pero' non hai mostrato e quindi non ti posso dire dove hai sbagliato ...

  3. #3
    nei file random devi specificare il numero di byte, probabilmente ne metti in più.... devi vedere il codice, postalo!
    jabjoint

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    141

    Codice da vedere

    Non ho quello dell'altro giorno perchè ho avuto la "bella idea" di svuotare il cestino. Comunque non funzionano tutte e tre le soluzioni sotto che sono simili alle prove che avevo fatto: vi ringrazio se mi dite perchè

    Type NomeCognome
    Nome As String * 4
    End Type
    Dim Persona As NomeCognome
    Dim Persona1 As String
    Dim Persona2 As String * 4

    Public Sub Prova1()
    Numerocicli = 100
    filee = "C:\WINDOWS\Desktop\Prova File Casuali\b.txt"
    Open filee For Random As #1 Len = 4 * Numerocicli
    Persona.Nome = "Mare"
    For i = 1 To Numerocicli
    Put 1, i, Persona
    Next i
    Close
    End Sub
    Public Sub Prova2()
    Numerocicli = 100
    filee = "C:\WINDOWS\Desktop\Prova File Casuali\b.txt"
    Open filee For Random As #1 Len = 4 * Numerocicli
    Persona1 = "Mare"
    For i = 1 To Numerocicli
    Put 1, i, Persona1
    Next i
    Close
    End Sub
    Public Sub Prova3()
    Numerocicli = 100
    filee = "C:\WINDOWS\Desktop\Prova File Casuali\b.txt"
    Open filee For Random As #1 Len = 4 * Numerocicli
    Persona2 = "Mare"
    For i = 1 To Numerocicli
    Put 1, i, Persona2
    Next i
    Close
    End Sub

    i file scritti hanno dei caratteri che non c'entrano nulla, mette dentro delle cose di HTML di pagine internet che sto visitando mentre gira la Sub, è questo il problema??? Non ci capisco nulla

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Perche' usi un record di

    4 * Numerocicli

    ?

    La lunghezza del record deve essere pari a quella della struttura.
    Dato che la tua struttura e' lunga 4, nella open devi indicare

    4

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    141

    Grazie

    Grazie oregon, ho capito, pensavo di dover indicare l'intera dimensione del file. D'altronde ciò non aveva senso perchè non potrei aggiungere dati dopo.
    Potete spiegarmi però perchè non funziona nel mio modo (solo per curiosità), dato che come dimensione del record dovrebbe essere comunque sufficiente??

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    141
    Ancora 2 domande:

    1) Le stringhe senza lunghezza fissa danno dei problemi per i file casuali anche se sono io ad imporre sempre lo stesso numero di caratteri??

    2) Posso inserire nel file solo stringhe od anche numeri?? Se devo mettere dei numeri è necessario prima trasformarli in stringhe con la funzione "Stringa=Str(Numero)"??

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Nel tuo esempio indichi che il record e' lungo 400 caratteri ma, per ogni record ne scrivi solo 4 ... gli altri 396 saranno caratteri casuali che erano presenti su disco in precedenza ...

    Le stringhe a lunghezza variabile, non vanno bene. Nella struttura le stringhe devono essere a lunghezza fissa.

    Si possono anche inserire dei valori numerici trattandoli normalmente. Con una struttura del tipo

    codice:
    Type Persona
       Cognome As String * 25
       Nome As String * 25
       Eta As Integer
       Stipendio As Currency
    End Type
    puoi avere un elemento di questo tipo

    codice:
    Dim Impiegato As Persona
    e lavorare normalmente con i valori numerici

    codice:
    Impiegato.Cognome = "Rossi"
    Impiegato.Nome = "Paolo"
    Impiegato.Eta = 32
    Impiegato.Stipendio = 1000
    e salvarli con tutta la variabile

    codice:
    Put #1, rec, Impiegato
    Per leggere i dati usi la Get

    codice:
    Get #1, rec, Impiegato
    e l'uso dei dati letti

    codice:
    Print Impiegato.Stipendio
    Naturalmente nella Open, la lunghezza del record sara' specificata con

    codice:
    ... Len = Len(Impiegato)

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    141
    ok oregon, grazie mille.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.