Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    583

    VB.net 2010 - assegnare a una variabile il contenuto di un'altra variabile

    ciao
    sto cercando di abbandonare VBScript per VB.net
    sto traducendo i miei lavori in questo linguaggio e qui mi manca l'istruzione "Eval" che valuta un'espressione per poi assegnarla a una variabile.

    codice:
    Dim indice As Byte = 0
    Dim n1, n2, n3, animale AsString
    n1 = " APE f"
    n2 = " AQUILA f"
    n3 = " ASINO m"
    
    Sub Scelta()
    indice = indice + 1
    'animale = "n" & indice
    End Sub
    
    vorrei che alla variabile "animale" sia assegnata la stringa " APE f"
    qual è l'istruzione che fa ciò?
    rudyF

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Te l'ho già detto in altri forum ...

    animale=n1
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    583
    non va!
    mi da animale = "n"

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Ma cosa hai scritto?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    583
    come mi hai detto tu:
    animale = n1
    è giusto, ma assegnando a n1 la stringa " APE f"
    e poi
    animale = "n" & indice (indice in quel momento vale 1)
    alla variabile animale non viene assegnato il contenuto di n1
    ma soltanto la lettera "n"

  6. #6
    Abbi pazienza, ma la stringa "n" da dove viene? A che serve?

    La variabile 'animale' prende l' ultimo valore che gli assegni, quindi è ovvio che se anche prima la uguagli a n1 poi diventa "n". E poi perché solo "n" e non anche l' indice? Insomma, il codice non è chiaro.

    Riguardo all' indice, perché aggiungi una variabile byte ad una stringa? Dovresti prima trasformarla in stringa: indice.ToString.

    E poi... come e dove viene richiamata la Sub Scelta()?
    Ultima modifica di eziogsv; 14-05-2015 a 16:19

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    583
    ciao
    rispondo a eziogsv
    la stringa "n" non serve a niente.
    perché la variabile "animale" prende solo "n" ? Non lo so!
    Quello che ho mostrato è solo una piccola parte del programma. La sub Scelta() è richiamata da un'altra sub.

    Lo so che Visual Basic.net è diverso da VBScript, ma prendendo l'esempio all'inizio del thread
    in VBScript si risolve così:
    animale = Eval("n" & indice)
    e se indice è uguale a 1 animale conterrà " APE f"
    se indice è uguale a 2 animale conterrà " AQUILA f"
    e se indice è uguale a 3 animale conterrà " ASINO m"

    come si fa con Visual Basic.net ?




  8. #8
    SE la stringa "n" non serve a niente.... cacciala via.

    codice:
    Select Case indice
      Case 1
          animale = n1
      case 2
          animale = n2
      Case 3
          animale = n3
    End Select

    Ovviamente sarebbe molto più veloce impostare una matrice n() di animali, in tal caso semplicemente sarebbe:

    codice:
    Dim n() as string = {" APE f", ....., .....}
    
    animale = n(indice)
    Ultima modifica di eziogsv; 14-05-2015 a 16:53

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    583
    Sono d'accordo.
    è quello che ho fatto per continuare il lavoro.
    Però il costrutto in questione l'ho usato in moltissimi dei mie lavori e non sempre è possibile usare un array, quindi il problema mi si ripresenterà presto.
    Ci sarà un modo per risolverlo. In fin dei conti si tratta di costruire una nuova variabile e se è possibile in VBScript deve essere possibile anche in Visual Basic.net. Dopotutto sempre Basic è.

    rudyF

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    No rudy, forse non vuoi comprendere la questione che più volte ti è stata detta. Anche se ha il nome Basic, è una versione Object Oriented e non si lavora in quel modo.

    A parte il fatto che non ho mai avuto bisogno di usare la Eval e ne ho scritto di programmi, come ti ho già detto, devi studiare il linguaggio praticamente da zero, soprattutto per l'organizzazione del codice.
    In ogni caso, il problema che hai posto si affronta e risolve normalmente con gli array.

    Io penso, da come usi variabili e altro, che tu non abbia le nozioni basi necessarie per scrivere codice e se non vuoi studiare ma ti fissi con quello che hai usato fino ad ora (come la Eval) allora non andrai lontano con VB.NET e ti conviene rinunciare.

    Quindi, ascolta i consigli di chi ti risponde nei forum ...

    Sono d'accordo.
    è quello che ho fatto per continuare il lavoro.


    Cosa hai fatto? Se sei d'accordo con l'uso degli array, perché mai usi questa Eval? Non ha senso ... usa gli array !
    Ultima modifica di oregon; 14-05-2015 a 17:30
    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 © 2024 vBulletin Solutions, Inc. All rights reserved.