Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [VB6] Problema Type

    ciao a tutti, sono nuovo e ho cominciato da poco a programmare in VB
    ecco il mio problema:
    ho dichiarato un mio type con dentro le variabili ke mi servono, di vario tipo.
    ma quando faccio per salvare il mio record su un file mi dà l'errore 59 (lunghezza del record non valida). quest'errore però me lo dà solo da quando ho aggiunto un paio di variabili nella struttura, prima andava tutto liscio. ho pensato fossero le stringhe, visto ke non hanno una dimensione fissa, ma anke se gli prefisso una dimensione mi dà lo stesso errore.

    percaso c'è un limite massimo nelle dimensioni del mio Type?
    se si, si può aumentare?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    No ... ma fai vedere il codice con cui apri il file ... anzi fai vedere un po' tutto il codice ...

  3. #3
    tutto il codice è un po' lungo da postare

    questo nel modulo:

    Option Explicit
    Type Contatto
    Record As Integer
    ID As Integer
    Salvato As Boolean
    Nickname As String * 30
    EMail As String * 40
    Msn As String * 40
    Forum As String * 30
    Blog As String * 40
    Cognome As String * 20
    Nome As String * 20
    Cellulare As String * 11
    Citta As String * 20
    Indirizzo As String * 35
    Descrizione As String * 200
    End Type

    se non gli dò una dimensione fissa mi dà comunque lo stesso errore se riempio un po' tutti i campi...

    in particolare l'errore si verifica quando scrivo con Put #1, C.Record, C
    o leggo con la Get #1, N_Rec, C

    il file lo apro con

    Open App.Path + "\Rubrica.rbc" For Random As #1

    il programma prima funzionava bene, quindi non ci dovrebbero essere errori particolari

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Come pensavo, non hai indicato la lunghezza del record nella Open ...
    Dato che non l'hai specificato, per default, viene assunto un valore di 128 byte ... e fino a che il record ha avuto una lunghezza minore, tutto e' andato bene.

    Dopo che il tuo record si e' ingrandito oltre questa misura, hai avuto il problema ...

    Correggi impostando nella Open la lunghezza del record (che e' quella della variabile di tipo Contatto che hai chiamato C).
    Quindi
    codice:
    Open App.Path + "\Rubrica.rbc" For Random As #1 Len = Len(C)
    Ovviamente dovrai cancellare il vecchio file dei dati perche' incompatibile con quello nuovo.

    Il consiglio finale e' di dare un'occhiata (ovvero studiare ...) la sintassi di ogni istruzione che usi (nell'help o su internet) perche' altrimenti le usi "al buio" e puoi avere parecchi problemi ...

  5. #5
    grazie!
    di solito le sintassi se mi creano qualke problema le controllo nell'help.
    alla lunghezza però non ci avevo fatto caso, dato ke neanke a scuola l'avevo usata finora

    thx

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Non e' solo una questione di sintassi ma anche dei "concetti" teorici che stanno dietro alle istruzioni ...

    Per intenderci, dato che stai usando tutte le istruzioni che gestiscono un file random, devi - prima di tutto - avere chiara tutta la "teoria" che sta dietro a tale argomento.

    In questo modo, non avresti sicuramente avuto problemi a pensare alla "lunghezza del record" ... ma di questi tempi si usa solamente sedersi ad una tastiera e scrivere, senza prendere un libro in mano un momento per leggerlo prima ...

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.