Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di buba88
    Registrato dal
    Feb 2004
    Messaggi
    538

    [VB6] - Problema con array e funzioni

    C ho un problema che nn riesco a risolvere.
    Allora, io ho una funziono che prende un array di double come argomento e restituisce un altro array di double. quando la richiamo, faccio così:

    codice:
    Vettore1 = Funzione(Vettore2)

    con questa sintassi però mi da l errore: "Impossibile assegnare alla matrice". Come posso risolvere???

  2. #2
    Utente di HTML.it L'avatar di Mabi
    Registrato dal
    May 2002
    Messaggi
    1,245
    Risolvi modificando l'array nella procedura.
    Ad esempio:
    codice:
    Private Sub Command1_Click()
    Dim Arr1(2) As Long
    Dim Arr2(2) As String
    
    Arr1(0) = 1&
    Arr1(1) = 2&
    Arr1(2) = 3&
    Call Procedura(Arr1, Arr2)
    End Sub
    
    Private Sub Procedura(ByRef Arr1() As Long, ByRef Arr2() As String)
    Const AscUno As Long = 48&
    Dim Cont1 As Long
    
    For Cont1 = 0& To UBound(Arr1)
      Arr2(Cont1) = Chr(AscUno + Arr1(Cont1))
    Next Cont1
    End Sub
    ... e non usare while wend è una sintassi deprecata

  3. #3
    Utente di HTML.it L'avatar di buba88
    Registrato dal
    Feb 2004
    Messaggi
    538
    scusami ma nn ho capito praticamente niente. prima di tutto perchè hai dichiarato un array long e uno string se io devo assegnare il valore di una funzione a un array??????

  4. #4
    Utente di HTML.it L'avatar di Mabi
    Registrato dal
    May 2002
    Messaggi
    1,245
    Perchè:
    Il valore di ciascun elemento di una matrice deve essere assegnato individualmente.
    Quindi una funzione non può restituire una matrice.
    Per questo motivo se devi ottenere un array (Arr2) da un altro (Arr1) lo devi passare come parametro e assegnare ogni elemento individualmente.

    Nel mio esempio ottengo il corrispondente valore stringa di quello numerico (Long).
    ... e non usare while wend è una sintassi deprecata

  5. #5
    Utente di HTML.it L'avatar di buba88
    Registrato dal
    Feb 2004
    Messaggi
    538
    una funzione può restituire un array, infatti ho risolto.

    praticamente quando dichiaravo l array, ne dichiaravo anche la grandezza, ho provato invece a dichiarare la grandezza in seguito e funziona!

    nel modulo:

    codice:
    Public Vettore() as Double
    Nel form:

    codice:
    Private Sub Form_Load()
    ReDim Vettore(40)
    End sub
    
    Private Command1_Click()
    Vettore = Funzione(Vettore2)
    End Sub

  6. #6
    Utente di HTML.it L'avatar di Mabi
    Registrato dal
    May 2002
    Messaggi
    1,245
    Originariamente inviato da buba88
    nel modulo:

    codice:
    Public Vettore() as Double
    Nel form:

    codice:
    Private Sub Form_Load()
    ReDim Vettore(40)
    End sub
    
    Private Command1_Click()
    Vettore = Funzione(Vettore2)
    End Sub
    Non riesco ad intuirne il funzionamento...
    E' completo ?
    ... e non usare while wend è una sintassi deprecata

  7. #7
    Utente di HTML.it L'avatar di buba88
    Registrato dal
    Feb 2004
    Messaggi
    538
    no nn è completo era solo un esempio per far capire cosa mi serviva

  8. #8
    codice:
    fuction Funzione1 (byref x()as tipo) as tipo()
       'elaborazioni varie
    
       funzione1 = x()
    end function
    per richiamarla

    codice:
    dim a() as tipo
    dim b() as tipo
    
       a() = funzione1(b())
    Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te

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.