Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    [VB] Chi si intende di FUNCTION?

    Questo è il codice che mi sforna tutte le combinazioni di lettere il fatto è che se io da una SUB srivo 'MsgBox Pass' lui mi restituisce solo l' ultima combinazione.
    Come posso farmele restituire tutte?

    'CopyRight by JabJoint ;-)

    Function Pass() As String

    Dim nT As Integer
    Dim c As Long
    Dim a1, a2, a3, a4 As String
    Dim Pass As String

    On Error Resume Next

    a1 = "a"
    a2 = "a"
    a3 = "a"
    a4 = "a"

    nT = 5 'Solo le prime 5 lettere del alfabeto '25' tutte!

    For L1 = 0 To nT

    av = Chr(97 + L1)
    a1 = av

    For L2 = 0 To nT

    av = Chr(97 + L2)
    a2 = av

    For L3 = 0 To nT

    av = Chr(97 + L3)
    a3 = av

    For L4 = 0 To nT

    av = Chr(97 + L4)
    a4 = av

    Pass = a1 & a2 & a3 & a4

    Open "C:\WINDOWS\DESKTOP\Password.txt" For Append As #1
    Print #1, Pass
    c = c + 1
    Close #1

    Next

    Next

    Next

    Next

    MsgBox "Totali combinazioni: " & c

    End Function
    jabjoint

  2. #2
    Utente di HTML.it L'avatar di darkblOOd
    Registrato dal
    Jul 2001
    Messaggi
    2,212
    secondo me è scritta malissimo sta function..non ci ho capito niente.

    Usate i quote [code]

  3. #3
    Nn mi interessa se è scritta male o meno. Funziona bene dunque a me va bene il mio problema sta nel reperire esternamente la variabile PASS dove in essa stà ciclicamente una parola es. "aacb".
    Chi di voi è in grado di aiutarmi? Grazie a chiunque mi sappia aiutare o cmq ci prova!
    jabjoint

  4. #4
    Utente di HTML.it L'avatar di darkblOOd
    Registrato dal
    Jul 2001
    Messaggi
    2,212
    Originariamente inviato da jabjoint
    Nn mi interessa se è scritta male o meno. Funziona bene dunque a me va bene il mio problema sta nel reperire esternamente la variabile PASS dove in essa stà ciclicamente una parola es. "aacb".
    Chi di voi è in grado di aiutarmi? Grazie a chiunque mi sappia aiutare o cmq ci prova!
    io intendevo dire che è scritta male nel senso che non adempie al suo dovere visto che non ti restituisce ciò che vorresti restituito.

    Se devi avere più di un valore perche non ti fai restituire una matrice dei valori che genera?

  5. #5
    Utente di HTML.it L'avatar di vonkranz
    Registrato dal
    Sep 2001
    Messaggi
    1,387
    Le funzioni possono restituire anche Vettori, quindi se tu ciascuna combinazione la metti in un elemento di un vettore e alla fine lo attribuisci come risultato della funzione.


    ...cmq se usi il TAG [code] rendi il codice che posti + comprensibile, facile da legge & interpretare e di conseguenza che vuole aiutarti e' agevolato.
    ..Poi vedi tu...
    Ciao.
    ...and I miss you...like the deserts miss the rain...

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    567

    ekko il codice

    allora... crea un modulo standard e inserisci le seguenti righe:

    type dati
    p() as string
    end type


    poi nella FUNCTION, al posto di Pass=.... metti:

    i=i+1
    redim preserve pass.p(0 to i) as string
    pass.p=a1 & a2 & a3 & a4 'separati da spazio mi raccomando

    mentre nella dichiarazione della function metti:

    function pass() as dati


    (ovviamente i deve essere azzerato all'inizio della function)

    ciao
    AleX

  7. #7
    Grazie mille proverò per mia sfortuna adesso non posso ti faccio sapere se ci riesco ciao e grazie ancora!
    jabjoint

  8. #8
    Mi da errore Alex! Mi dice:

    Solo i tipi pubblici definiti dall' utente definiti in moduli di oggetto pbblici possono essere utilizzati come parametri o tipi restituiti per routine pubbliche di moduli di classe o come campi di tipi pubblici definiti dall' utente.

    Bho... Ho fatto come hai detto. Sono sicuro di non aver sbagliato nulla! Grazie cmq spero non mi lascierai nei guai
    jabjoint

  9. #9
    Nessuno mi può aiutare?
    jabjoint

  10. #10
    Utente di HTML.it L'avatar di Mabi
    Registrato dal
    May 2002
    Messaggi
    1,245
    se io da una SUB srivo 'MsgBox Pass' lui mi restituisce solo l' ultima combinazione.
    Come posso farmele restituire tutte?
    Ti vuoi fare restituire tutte le 1296 combinazioni in un solo MsgBox ???!

    E' una cosa enorme ! Va be... puoi capirlo provandolo tu stesso.

    Ho guardato il tuo codice e mi sono permesso di fare qualche modifica inserendo anche un modulo con la dichiarazione dell'array dinamico.

    Il modulo:
    codice:
    Public Password() As String
    Il tuo codice modificato:
    codice:
    'CopyRight by JabJoint
    
    Private Sub Pass()
    On Error Resume Next
    
    Dim nT As Integer
    Dim c As Long
    Dim a1, a2, a3, a4 As String
    
    a1 = "a"
    a2 = "a"
    a3 = "a"
    a4 = "a"
    
    nT = 5 'Solo le prime 5 lettere del alfabeto '25' tutte!
    
    Open "C:\WINDOWS\DESKTOP\Password.txt" For Append As #1
    For L1 = 0 To nT
      av = Chr(97 + L1)
      a1 = av
      For L2 = 0 To nT
        av = Chr(97 + L2)
        a2 = av
        For L3 = 0 To nT
          av = Chr(97 + L3)
          a3 = av
          For L4 = 0 To nT
            av = Chr(97 + L4)
            a4 = av
    
            ReDim Preserve Password(c)
            Password(c) = a1 & a2 & a3 & a4
    
              Print #1, Password
              c = c + 1
            
          Next L4
        Next L3
      Next L2
    Next L1
    Close #1
    
    MsgBox "Totali combinazioni: " & CStr(c)
    End Sub
    Il richiamo della procedura con la tua MsgBox dopo aver premuto Command1:
    codice:
    Private Sub Command1_Click()
    Dim StringaTot As String
    Dim Cont As Double
    
    Call Pass
    
    For Cont = 0 To UBound(Password)
      StringaTot = StringaTot & Password(Cont) & "-"
    Next Cont
    
    MsgBox StringaTot
    End Sub
    In questo modo vedi solamente una parte delle combinazioni, cioè solamente tutte quelle che sono entrate nei limiti di una variabile string (StringaTot)

    Penso che le tue intenzioni non erano queste.
    Chiariscimi cosa volevi fare...

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