Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it L'avatar di gaten
    Registrato dal
    Jul 2007
    Messaggi
    1,269

    Scorrere Textarea e concatenare riga testo

    Ragazzi, ho praticamente due textarea in una pagina.
    Adesso dovrei fare in modo che per ogni riga della textarea1 , concateno ogni riga della textarea2.

    Esempio:

    textarea1:

    parola1
    parola2
    parola3

    textarea2
    aaa
    bbb
    ccc

    output finale:
    parola1aaa
    parola2bbb
    parola3ccc

    Come è possibile farlo in C# ? Ovviamente il tutto dovrà scaturire al click di un pulsante?
    Ho creato un progetto ASP.NET MVC, per cui ho una pagina chiamata index.cshtml e ho un controller chiamato HomeController con il metodo Index.
    Con i sogni possiamo conoscere il futuro...

  2. #2
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Non te ne avrai male se uso il basic?

    Faccio l'ipotesi che ambedue i textarea contengano gli stessi elementi.

    codice:
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim s1 As String = l.RequestParams("TextArea1")
        Dim s2 As String = l.RequestParams("TextArea2")
    
    
        Dim v1 As String() = s1.Split(New String() {vbNewLine}, StringSplitOptions.RemoveEmptyEntries)
        Dim v2 As String() = s2.Split(New String() {vbNewLine}, StringSplitOptions.RemoveEmptyEntries)
        Dim v(v1.Length) As String
    
        For i As Integer = 0 To v1.Length - 1
            v(i) = v1(i) & v2(i)
            l.PrintLn(v(i))
        Next
    
    
    End Sub
    Pietro

  3. #3
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,886
    ​prova così (premesso che il numero delle righe dovrebbe essere uguale e che tu abbia un accapo fra una riga e l'altra):

    Non te ne avrai a male se uso C# ?

    codice:
     
        protected void bt_Click(object sender, EventArgs e)
        {
            string[] textArea1 = tb1.Text.Split(System.Environment.NewLine.ToCharArray());
            string[] textArea2 = tb2.Text.Split(System.Environment.NewLine.ToCharArray());
    
            ArrayList risultato = new ArrayList();
    
            for (int i = 0; i < textArea1.Length; i++)
                risultato.Add(String.Concat(textArea1[i], textArea2[i]));
    
            for (int j = 0; j < risultato.Count; j++)
            {
                if (risultato[j].ToString() == String.Empty)
                    risultato.RemoveAt(j);
            }
                    
            // Verifica
            for (int j = 0; j < risultato.Count; j++)
                Response.Write(risultato[j]);
            }

    eh, vedi l'efficacia del forum ..

  4. #4
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    spero di non abusare se continuo col Basic
    un altro modo (sempre nell'ipotesi di identico numero di parole nei due TextArea)

    codice:
    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        Dim s1 As String = l.RequestParams("TextArea1")
        Dim s2 As String = l.RequestParams("TextArea2")
    
        Dim v As New List(Of String)()
        Dim strReader1 As New StringReader(s1)
        Dim strReader2 As New StringReader(s2)
    
        Do While strReader1.Peek <> -1
            v.Add(strReader1.ReadLine & strReader2.ReadLine)
        Loop
        'verifica
        For Each element In v
            l.PrintLn(element)
        Next
    End Sub
    Pietro

  5. #5
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Magari si preferisce in javascript (senza jquery )

    codice:
    function button3_onclick()
    {
        var s1 = document.getElementById("TextArea1").value;
        var s2 = document.getElementById("TextArea2").value;
    
        var v1 = s1.split("\n");
        var v2 = s2.split("\n");
    
        var v = [];
    
        for (var i = 0; i < v1.length; i++)
        {
            if(v1[i] !="") v.push(v1[i] + v2[i])
        }
    
    }
    Pietro

  6. #6
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,886
    un altro modo sarebbe di unire i due testi, fare Split sul risultato e poi unire i pari con i pari ed i dispari con i dispari.

    pietro, non ho capito cosa è "l" in l.RequestParams("TextArea1")

  7. #7
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Quote Originariamente inviata da djciko Visualizza il messaggio
    un altro modo sarebbe di unire i due testi, fare Split sul risultato e poi unire i pari con i pari ed i dispari con i dispari.

    pietro, non ho capito cosa è "l" in l.RequestParams("TextArea1")
    Hai ragione non ci avevo pensato. Uso visual studio e richiamo sempre una mia libreria.
    Comunque il codice è da considerarsi solo come esempio, non vale il copia-incolla.

    in pratica metto quasi sempre:

    Imports l = mialibreria.MioModulo

    da cui l.RequestParams("TextArea1") traducibile facilmente

    ps. ricordo che te lo avevo già detto alla fine del secolo scorso o all'inizio dell'attuale
    Pietro

  8. #8
    Utente di HTML.it L'avatar di gaten
    Registrato dal
    Jul 2007
    Messaggi
    1,269
    Quote Originariamente inviata da djciko Visualizza il messaggio
    ​prova così (premesso che il numero delle righe dovrebbe essere uguale e che tu abbia un accapo fra una riga e l'altra):

    Non te ne avrai a male se uso C# ?

    codice:
     
        protected void bt_Click(object sender, EventArgs e)
        {
            string[] textArea1 = tb1.Text.Split(System.Environment.NewLine.ToCharArray());
            string[] textArea2 = tb2.Text.Split(System.Environment.NewLine.ToCharArray());
    
            ArrayList risultato = new ArrayList();
    
            for (int i = 0; i < textArea1.Length; i++)
                risultato.Add(String.Concat(textArea1[i], textArea2[i]));
    
            for (int j = 0; j < risultato.Count; j++)
            {
                if (risultato[j].ToString() == String.Empty)
                    risultato.RemoveAt(j);
            }
                    
            // Verifica
            for (int j = 0; j < risultato.Count; j++)
                Response.Write(risultato[j]);
            }

    eh, vedi l'efficacia del forum ..
    Grazie mille per la risposta.
    Una domanda... il metodo bt_Click, andrà nel controller "HomeController", inoltre come richiamo il metodo dal pulsante in html?
    Premetto che stò usando bootstrap, per cui avrò qualcosa del tipo:

    codice:
      
    <button type="button" class="btn btn-primary">Primary</button>
    considera che una volta cliccato, devo visualizzare il risultato sotto le due textarea...
    Con i sogni possiamo conoscere il futuro...

  9. #9
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,886
    Non conosco bene MVC.
    Se è legato a quello apri un altro thread perchè è un argomento diverso.

    Se invece devi farlo semplicemente da html usa JS come sopra richiamando la funzione all'onclick.

    Pietro, io ricordo con affetto la tua libreria EsempiApogeo o qualcosa del genere.
    Un mito di libreria
    Ultima modifica di djciko; 15-04-2016 a 09:59

  10. #10
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    io non conosco MVC nè bootstrap .
    La domanda si riferiva però ad una questione precisa, indipendente dal linguaggio e da MVC o webform.
    Spetta a te sintetizzare le risposte e adattarle al tuo caso.

    ps. L'unico libro di informatica comprato e non letto è quello di Esposito su MVC
    Pietro

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.