Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2006
    Messaggi
    188

    [VB6 sp6] Inserire lettura di file testo in routine generica.

    Cari amici, scusate ma non so proprio come esprimermi. Ora ci provo terra-terra (forse mi sto perdendo in un bicchiere d'acqua):
    per operare su di un file ASCII, uso il comando
    codice:
    get #numerofile,numerorecord,variabile (tipofile1.campo1)
    dove variabile fa riferimento alla dichiarazione type del tracciato record
    codice:
    type tipofile1
       campo1 as string *10
    end type
    ok. mi sono fatto una routine per creare il file di testo come richiesto da vari programmi (es. il tracciato riba) dove ogni record deve essere chiuso con ritorno carrello, leggendo il tipofile1 e scrivendo nel nuovo file.

    ora, volevo definire in questo modulo una variante che identificasse il 'tipofile1'

    codice:
    public sub creafile (byval nomefile as string,byval tipofile as ?????)
    Ho provato con object ma mi va in errore. Forse, non è possibile fare ciò che mi frulla nella testa?

    Grazie e... salute a tutti

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Public Sub creafile(ByVal nomefile As String, tf As tipofile1)
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2006
    Messaggi
    188
    ok, funge (non ne dubitavo!!!!)

    Però, scusa, Oregon, ma la mia necessità di passare il tipo era perchè vorrei utilizzare la stessa routine per vari file, che hanno lungezza differente per cui

    Quote Originariamente inviata da oregon Visualizza il messaggio
    As tipofile1)
    Vorrei portergli passare, nella call, una volta un tipofile1, una volta tipofile2. E' possibile o... chiedo troppo?

  4. #4
    Utente di HTML.it L'avatar di torn24
    Registrato dal
    Aug 2008
    Messaggi
    551
    Dico la mia, dichiari i record a livello globale, quindi sono visibili a tutte le sub, poi alla procedura invii un numero per selezionare quale "type" utilizzare


    codice:
    type uno
    ....
    end type
    
    type due
    .....
    end type
    
    
    Public Sub creafile(ByVal nomefile As String, scelta as integer)
        
           IF scelta=1 THEN
               open nomefile for random as #1 len=len(uno)
           ELSE IF scelta=2 THEN
               open nomefile for random as #1 len=len(due)
    
    end sub
    Tecnologia

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2006
    Messaggi
    188
    Niente male come escamotage. Non ci avevo pensato, in quanto ero più focalizzato a capire che tipo di 'variabile/oggetto" poteva essere.

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    A parte l'indicazione avuta (abbastanza semplice) se i tipi non sono molto diversi potresti costruirne uno solo con un valore iniziale che indichi il tipo.

    Oppure creare più funzioni con nomi diversi e argomenti diversi per ottenere i dati da passare ad una sola funzione comune.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2006
    Messaggi
    188
    Francamente, quello che mi frullava nella testa era di generalizzare il puntamento al file come si fa nel caso di... un recordset

    codice:
    public sub creafile (byval nomefile as string,byval tipofile as recordset)
    e quindi nella open poter far riferimento ad esso/essa

    codice:
    Open nomefile For Random As #nfile Len = Len(tipofile )
    nella lettura idem

    codice:
    Get #nfile, k, tipofile
    e per la trascrizione dei dati idem

    codice:
    Print #nfile2, tipofile.nomecampo
    Scrivendo, mi sto rendendo conto che non la soluzione prospettata da torn24 non va bene, altrimenti dovrei ripetere sempre l'istruzione di confronto e le relative istruzioni del file. Non vado a rispiarmiare istruzioni. Io volevo scrivere meno codice, per quello, cerco di crearmi il più possibile routine con variabili (sperando di non dire un'eresia)

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Un recordset è un'altra cosa ...

    Comunque, potresti anche creare una classe con tutti gli attributi che servono e passare un oggetto di quella classe opportunamente istanziato.
    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 © 2025 vBulletin Solutions, Inc. All rights reserved.