none
[VB 2010]Gestione delle stringhe: ottenere la parte di label dopo un determinato carattere

    Domanda

  • Salve a tutti,

    è la mia prima domanda e non so le regole del forum, quindi perdonatemi se facco spam, comunque...

    Come faccio ad ottenere la parte di label a partire da un determinato carattere fino alla fine?

    Grazie mille a chiunque mi risponderà.

    venerdì 17 agosto 2012 15:03

Risposte

  • Hello -frenci2012-,
    ti consiglio di studiare il linguaggio e il framework prima di avventurarti
    nello sviluppo (anche a livello amatoriale). Tutto ti sarà più chiaro.
    Nel tuo caso specifico, immagino tu voglia:
    1) prendere il testo contenuto in un controllo Label presente in una form
    è un controllo di visualizzazione cioè non permette all'utente di inserire
    qualcosa come invece fa il TextBox http://msdn.microsoft.com/en-us/library/system.windows.forms.textbox(v=vs.100).aspx).
    Tale testo è contenuto nella proprietà Text (http://msdn.microsoft.com/en-us/library/0cs4xb3d(v=vs.100).aspx)
    che è di tipo String (http://msdn.microsoft.com/it-it/library/system.string(v=vs.100).aspx);
    2) Ricavare la posizione (cioè l'indice) in cui si trova il primo carattere
    "-" del testo preso al punto 1 e puoi farlo con il metodo IndexOf della classe
    3) Recuperato l'indice (se esiste), allora puoi ricorrere al metodo Substring
    della classe String per estrarre definitivamente il testo che ti serve.
     
    Il tutto si traduce in una cosa del genere:
     
    [code]
    dim testo = lblLabel.Text
    dim indice = testo.IndexOf("-")
    if indice>=0 then
       dim subTesto = testo.substring(indice)
    end if
    [/code]
     
    Non ho a disposizione Visual Studio e spero di non aver scritto errori.
    lblLabel è il nome della label presente nella form.
     
     
    domenica 19 agosto 2012 15:27
  • Ciao, puoi utilizzare i metodi indexOf, per determinare la posizione di un occorrenza di una stringa o di un carattere in un'altra stringa, e Substring per estrarre una sotto stringa da un'altra stringa a partire da una posizione e per il numero di caratteri indicati.

    Esempio :

    'una stringa
            Dim s1 As String = "Una stringa di esempio."
    
            'la posizione della prima (e unica) occorrenza della parola "di" contenuta in s1
            Dim p As Integer = s1.IndexOf("di")
    
            'l'estrazione della sottostringa a partire da p fino alla fine di s1.
            's2 sarà uguale a "di esempio."
            's1.Lenghth restituisce la lunghezza in caratteri di s1
            Dim s2 As String = s1.Substring(p, s1.Length - p)

    Per un help sull'uso del forum puoi vedere qui

    Ciao.


    mario formosa


    venerdì 17 agosto 2012 16:01

Tutte le risposte

  • Ciao frenci2012,

    innanzitutto puoi leggere le regole del forum qui http://social.msdn.microsoft.com/Forums/it-IT/annunciit/thread/f62ed389-f090-4f96-8d0d-4e6ee297f0af  (ti invito a leggerle).

    Poi, la label di cui tu parli è il controllo Windows Form?

    In quel caso la label ha una proprietà Text di tipo String.

    La classe String (puoi trovare info qui http://msdn.microsoft.com/it-it/library/system.string.aspx) dispone di un metodo Substring (http://msdn.microsoft.com/it-it/library/hxthx5h6.aspx) che probabilmente è quello che cerchi.

    Ti consiglio sempre di andare su MSDN perché oltre le info trovi anche esempi.

    venerdì 17 agosto 2012 15:46
  • Ciao, puoi utilizzare i metodi indexOf, per determinare la posizione di un occorrenza di una stringa o di un carattere in un'altra stringa, e Substring per estrarre una sotto stringa da un'altra stringa a partire da una posizione e per il numero di caratteri indicati.

    Esempio :

    'una stringa
            Dim s1 As String = "Una stringa di esempio."
    
            'la posizione della prima (e unica) occorrenza della parola "di" contenuta in s1
            Dim p As Integer = s1.IndexOf("di")
    
            'l'estrazione della sottostringa a partire da p fino alla fine di s1.
            's2 sarà uguale a "di esempio."
            's1.Lenghth restituisce la lunghezza in caratteri di s1
            Dim s2 As String = s1.Substring(p, s1.Length - p)

    Per un help sull'uso del forum puoi vedere qui

    Ciao.


    mario formosa


    venerdì 17 agosto 2012 16:01
  • Ciao Massimo, ti chiedo scusa, ma quando ho risposto al post di frenci2012, non c'erano risposte. Poi prima di inoltrare la mia risposta, nel frattempo, tu avevi gia dato la tua.

    Ciao.

    venerdì 17 agosto 2012 16:18
  • Grazie mille per la risposta, Substring effettivamente è ciò che cerco, solo che non sono riuscito a capire bene.

    Innanzitutto non so che cosa siano le funzioni, e poi a me serve un modo per attivare, tramite la pressione di un pulsante, un qualcosa che inserisca magari in una variabile il contenuto di una label a partire dal segno "-" fino alla fine: mi potresti fare un esempio di codice, perfavore?

    P.S. Un'altra domanda: In questo forum, perchè se edito una parte di testo in grassetto e inoltro il messaggio, il thread viene visualizzato senza grassetto?


    • Modificato Joiner_ domenica 19 agosto 2012 13:38 Aggiunta P.S.
    domenica 19 agosto 2012 13:36
  • Hello -frenci2012-,
    ti consiglio di studiare il linguaggio e il framework prima di avventurarti
    nello sviluppo (anche a livello amatoriale). Tutto ti sarà più chiaro.
    Nel tuo caso specifico, immagino tu voglia:
    1) prendere il testo contenuto in un controllo Label presente in una form
    è un controllo di visualizzazione cioè non permette all'utente di inserire
    qualcosa come invece fa il TextBox http://msdn.microsoft.com/en-us/library/system.windows.forms.textbox(v=vs.100).aspx).
    Tale testo è contenuto nella proprietà Text (http://msdn.microsoft.com/en-us/library/0cs4xb3d(v=vs.100).aspx)
    che è di tipo String (http://msdn.microsoft.com/it-it/library/system.string(v=vs.100).aspx);
    2) Ricavare la posizione (cioè l'indice) in cui si trova il primo carattere
    "-" del testo preso al punto 1 e puoi farlo con il metodo IndexOf della classe
    3) Recuperato l'indice (se esiste), allora puoi ricorrere al metodo Substring
    della classe String per estrarre definitivamente il testo che ti serve.
     
    Il tutto si traduce in una cosa del genere:
     
    [code]
    dim testo = lblLabel.Text
    dim indice = testo.IndexOf("-")
    if indice>=0 then
       dim subTesto = testo.substring(indice)
    end if
    [/code]
     
    Non ho a disposizione Visual Studio e spero di non aver scritto errori.
    lblLabel è il nome della label presente nella form.
     
     
    domenica 19 agosto 2012 15:27
  • Grazie mille, ho risolto facilmente.

    P.S. Io ho e quindi intendevo Visual Basic, non Visual Studio.
    • Modificato Joiner_ lunedì 20 agosto 2012 07:38 Aggiunta P.S.
    lunedì 20 agosto 2012 07:35
  • Hello -frenci2012-,
    Visual Studio è l'ambiente di sviluppo per le applicazioni .NET, Visual Basic
    .NET è uno dei linguaggi della piattaforma.
    Quindi, tecnicamente, tu scrivi codice Visual Basic all'interno di Visual
    Studio (a meno che tu non usi notepad e compili a linea di comando).
    Quindi, come vedi, hai anche tu Visual Studio!! :-)
     
    Se la soluzione da te trovata è differente da quella che ti ho proposto,
    per favore, condividila con il forum in modo che chi arriva dopo ed ha il
    tuo stesso problema, possa utilizzarla.
     
    Grazie
     
     
    lunedì 20 agosto 2012 12:05
  • Ciao -frenci2012-,

    per favore potresti, se hai risolto, chiudere il thread marcando la risposta corretta.

    In questo modo chi cercherà soluzioni a problemi analoghi al tuo saprà che il thread è chiuso

    martedì 28 agosto 2012 13:18