Selezionare testo tra due caratteri

di il
5 risposte

Selezionare testo tra due caratteri

Salve avrei bisogno di un aiuto. Ho un documento di testo che contiene una stringa.

es:

luca sta correndo " dietro al pallone " mentre lucia " va in bici spensierata " , marco mangia " un panino "

io dovrei fare in modo di leggere il testo tra virgolette e creare dei bottoni sul FlowLayoutPanel uno dopo l altro finche non trova piu del testo tra virgolette. io ho usato questa formula

Dim button = New Button()
Dim extract As String = ""
Dim start As Integer = line.IndexOf(" "" ") + 1
Dim [end] As Integer = line.IndexOf(" "" ")

If start >= 0 AndAlso [end] > start Then
extract = line.Substring(start, [end] - start)

FlowLayoutPanel1.Controls.Add(button)
button.Width = 300
button.Height = 30
button.Text = extract

solo che non so come continuare a fargli trovare il prossimo testo fra virgolette.

5 Risposte

  • Re: Selezionare testo tra due caratteri

    Ciao

    Parti da questo suggerimento e fatti un bel giro prima sulla documentazione ufficiale quando hai da fare qualcosa

    https://docs.microsoft.com/it-it/dotnet/csharp/how-to/search-strings

    oppure usa google per ciò che ti serve ....

    naturalmente studiando un linguaggio tra i primi studi ed esercitazioni ci sono le stringhe !!!

    Byeee
  • Re: Selezionare testo tra due caratteri

    Diegom89 ha scritto:


    solo che non so come continuare a fargli trovare il prossimo testo fra virgolette.
    A parte il continuare, che puoi fare con un ciclo, non mi sembra che il codice che hai scritto possa funzionare, controlla bene come definisci [end]
  • Re: Selezionare testo tra due caratteri

    Oltre a quanto già detto:
    1) ti serve un ciclo Do, perché devi aggiungere tanti Button quanti sono i testi tra le virgolette e mi pare di capire che tu non sappia già prima quanti questi siano...
    2) l'Add dei Button andrebbe fatto a valle delle impostazione delle varie proprietà. Prima definisci il bottone e poi lo aggiungi.
  • Re: Selezionare testo tra due caratteri

    Secondo me, in questa circostanza, dovresti orientarti sulle

    Ti crei un pattern assegnando un nome al gruppo di acquisizione e poi cicli i risultati estraendo i gruppi acquisiti.
  • Re: Selezionare testo tra due caratteri

    1) se dichiari un bottone, nel FlowLayoutPanel potrai aggiungere più bottoni ma tutti uguali.
    Soluzione: dichiara una lista di bottoni

    2) per leggere le successive stringhe hai bisogno di un ciclo
    3) la ricerca deve partire dopo l'ultima stringa trovata
    4) termini la ricerca al primo IndexOf con risultato -1 (non trovato)
    5) la tua stringa di ricerca è = " "" " (spazio virgolette spazio), la stringa di input: line, dovrà terminare con uno spazio se vuoi che anche l'ultima stringa sia rilevata...
    
    Public Class Form1
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            Dim line As String = "luca sta correndo "" dietro al pallone "" mentre lucia "" va in bici spensierata "" , marco mangia "" un panino "" "
            Me.Text = line
            Dim button = New List(Of Button)
            Dim extract As String = ""
            Dim start As Integer
            Dim [end] As Integer = 0
    
            Do
                start = line.IndexOf(" "" ", [end] + 1)
                If start = -1 Then Exit Do
                [end] = line.IndexOf(" "" ", start + 1)
                If [end] = -1 Then Exit Do
                extract = line.Substring(start + 2, [end] - start)
                button.Add(New Button) ' creo un nuovo bottone e lo aggiungo alla lista
                FlowLayoutPanel1.Controls.Add(button.Last) ' nel FlowLayoutPanel aggiungo l'ultimo bottone creato
                button.Last.Width = 300
                button.Last.Height = 30
                button.Last.Text = extract
            Loop
        End Sub
    End Class
    
Devi accedere o registrarti per scrivere nel forum
5 risposte