Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 40
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2018
    Messaggi
    30

    [VB.NET] Leggere contenuto di una variabile indicata da un'altra variabile.

    Buon giorno a tutti, sono un nuovo iscritto e vorrei presentarmi.
    Ho 70 anni ed un po' di esperienza con Access2003, ma per realizzare un mio progetto web
    ho dovuto passare a Visual Studio 2017; attualmente pero' uso Visal Basic 2010.
    Essendo un programma piuttosto "corposo" ho capito dall'inizio che avrei avuto bisogno di aiuto,
    e visto che e' arrivato il primo problema, ho pensato a voi.
    Premetto che sono parecchi giorni che leggo forum e manuali, ma non riesco a decifrare il problema
    perche' piu' leggo e piu' ho le idee confuse (quei pochi neuroni rimasti entrano in sciopero).

    Problema:
    Ho una serie di variabili che contengono liste di nomi vari, e una variabile (var) che
    di volta in volta conterrà il nome di una di queste variabili.
    Avrei bisogno di leggere il contenuto della variabile che è indicata in (var), vedi esempio sotto.

    Dim nomi As String = "Mario, Giorgio,Franco,......"
    Dim animali As String = "Cane,Gatto,Cavallo,......"
    Dim fumetti As String = "Pippo,Pluto,Paperino,......"
    Dim var As String
    var = "animali"
    MsgBox ( ? ) dovrebbe visualizzare: Cane,Gatto,Cavallo,......

    Spero di essermi spiegato bene. Se ho sbagliato qualcosa chiedo scusa.

    Grazie in anticipo e saluti.

  2. #2
    Moderatore di Windows e software L'avatar di URANIO
    Registrato dal
    Dec 1999
    residenza
    Casalpusterlengo (LO)
    Messaggi
    1,255
    Prova con:
    CallByName(Me,
    "animali", CallType.Get)


    Dovrebbe restituirti il valore della variabile animali

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2018
    Messaggi
    30
    Ciao URANIO.

    Ti ringrazio, ma la tua risposta mi ha fatto capire che l'esempio che ho fatto non rispecchia
    il fine che volevo raggiungere.
    Questo ti ha indotto ad una soluzione giusta ma che non e' utile al mio caso.
    Cerchero' di esporre meglio il mio problema e poi mi rifaro' vivo.

    Un saluto, grazie comunque e a piu' tardi.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2018
    Messaggi
    30
    Rieccomi, Vediamo se riesco a spiegarmi cosi':

    Devo leggere il contenuto della variabile 2 ( nomi / animali / fumetti )
    che e' contenuta in una variabile 1 ( var ), qualcosa come:

    Dim x As String
    x = "Gatto"
    If var.Contains(x) Then .......

    Quindi devo vedere se la parola Gatto e' contenuta nella variabile contenuta in ( var ).
    Se in ( var ) e' contenuta la variabile ( nomi ), dovro' cercare Mario o Giorgio o Franco,......

    Se non e' ancora chiaro vi prego di scusarmi, ci riprovero'

    Saluti

  5. #5
    Scusa se dico una cosa che non c' entra col tuo esempio, ma mi pare che invece di stringhe nel tuo caso sia MOLTO più preferibile usare la classe Dictionary.

    codice:
            Dim dict As New Dictionary(Of String, String)
    
            dict.Add("nomi", "Mario, Giorgio,Franco,......")
            dict.Add("animali", "Cane,Gatto,Cavallo,......")
            dict.Add("fumetti", "Pippo,Pluto,Paperino,......")
    
            Dim var As String = "animali"
            Dim DaCercare as String
    
            If dict.ContainsKey(var) Then
                DaCercare = dict.Item(var).ToString
                MessageBox.Show(DaCercare)
            else
                .........................
            End If
    Ultima modifica di eziogsv; 24-01-2018 a 21:10

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2018
    Messaggi
    30
    Ciao eziogsv.

    La tua soluzione e' molto interessante, la valutero' sicuramente. In effetti lo so che ci sono
    soluzioni piu' performanti di quelle che ho scelto io. Ne ho valutate altre, ma i motivi delle mie
    scelte sono principalmente dovute al fatto che sono ancora poco esperto per potere utilizzare
    istruzioni piu' impegnative ( per me ), e per andare avanti preferisco utilizzare fin che posso
    i metodi che gia' conosco, con l'obbiettivo di imparare pian piano altre soluzioni ( come la tua ).
    Un secondo motivo per cui spero di trovare una soluzione al mio quesito, e' che mi servirebbe
    anche per altre istruzioni.

    Provero' sicuramente il tuo suggerimento, cercando di "capirlo" e se possibile adattarlo
    al mio programma senza dover stravolgere troppo.

    Ti ringrazio della risposta, un saluto.

  7. #7
    Utente di HTML.it L'avatar di patel
    Registrato dal
    Jan 2008
    Messaggi
    1,994
    Credo sia più complicato seguire la tua strada che imparare ad usare le liste o la classe Dictionary, tanto prima o poi lo dovrai fare

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2018
    Messaggi
    30
    Bravo eziogsv mi hai consigliato bene.
    Ho studiato e adattato la tua soluzione e funziona alla grande.
    Approfodiro' questa istruzione che non conoscevo ( sono ancora moltissime ).
    Che abisso da quando programmavo lo Z80 in linguaggio macchina.

    Ho sostituito " MessageBox.Show(DaCercare) " con:

    If DaCercare.Contains(x) Then
    MsgBox("presente")
    Else
    MsgBox("non presente")
    End If

    Dove "x" e' il nome da cercare.

    Spero pero' ( visto che siamo in ballo ) di trovare una soluzione anche per il mio quesito,
    ovvero leggere la stringa di una variabile contenuta all'interno di un'altra variabile.
    Mi servirebbe in altri contesti

    Ringrazio sentitamente, cordiali saluti.

  9. #9
    Quote Originariamente inviata da vegiott Visualizza il messaggio
    ....
    Spero pero' ( visto che siamo in ballo ) di trovare una soluzione anche per il mio quesito,
    ovvero leggere la stringa di una variabile contenuta all'interno di un'altra variabile.
    Mi servirebbe in altri contesti

    Ringrazio sentitamente, cordiali saluti.
    Ciao, ma invece di fare var="animali", perchè non gli passi direttamente il valore: var=animali?
    cosi puoi usare tranquillamente: If var.Contains(x) Then .......
    Jupynet

  10. #10
    Quote Originariamente inviata da vegiott Visualizza il messaggio
    Spero pero' ( visto che siamo in ballo ) di trovare una soluzione anche per il mio quesito,
    ovvero leggere la stringa di una variabile contenuta all'interno di un'altra variabile.
    Mi servirebbe in altri contesti.
    Direi che DIRETTAMENTE non è possibile leggere la stringa di una variabile contenuta all'interno di un'altra variabile, così come descritto nella tua richiesta.

    Ma v
    isto che proprio insisti ( ) a lume di naso direi che la cosa è tranquillamente fattibile in modo INDIRETTO con un semplicissimo Select Case (che è praticamente un modo alternativo e facilitato di scrivere If... ElseIf... ElseIf...) e qualche riga di codice. Il Select Case potrebbe sostituire, in modo meno "pulito", il codice da me suggerito, utilizzando le tue variabili di partenza anziché il Dizionario.

    Visto che stai imparando... parti dalla mia imbeccata e medita sul codice da scrivere, che è il modo migliore per imparare. Eventualmente postalo che suggeriamo ulteriormente.

    Ripeto: Select Case... ed aggiungo: Select Case var (e tieniti caro il DaCercare, seconda imbeccata).
    Ultima modifica di eziogsv; 25-01-2018 a 17:32

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.