Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it L'avatar di Ntinho
    Registrato dal
    Apr 2012
    Messaggi
    29

    Creare testo con risultao "parola" + textbox1 + "parola" + textbox2

    Ciao a tutti, questo è la mia prima discussione... Ho un Problema con vb 2010...
    Devo creare un programmma che inserisca nel richtextbox1:
    -" Then parola(r) =" + 1a riga textbox1 + "If parola(r) =" 1a riga textbox2
    -" Then parola(r) =" + 2a riga textbox1 + "If parola(r) =" 2a riga textbox2
    -" Then parola(r) =" + 3a riga textbox1 + "If parola(r) =" 3a riga textbox2
    -" Then parola(r) =" + 4a riga textbox1 + "If parola(r) =" 4a riga textbox2
    -" Then parola(r) =" + 5a riga textbox1 + "If parola(r) =" 5a riga textbox2
    -e continuare così

    Io ho provato in questo modo dopo aver sbattuto la testa per molto:
    Dim primoif As String
    Dim secondothen As String
    Dim listauno() As String
    Dim listadue() As String
    Dim r As Integer
    Dim ris1 As String
    Dim ris2 As String
    secondothen = " Then parola(r) ="
    primoif = "If parola(r) ="
    listauno = Split(TextBox1.Text, vbCrLf)
    listadue = Split(TextBox2.Text, vbCrLf)
    For r = 0 To UBound(listauno)
    ris1 = primoif + listauno(r) + secondothen
    Next
    For r = 0 To UBound(listadue)
    ris2 = ris1 + listadue(r)
    Next
    RichTextBox1.Text = ris2
    End Sub
    Eh ora, non so più cosa correggere. Chi sa darmi una mano??
    ps= Ah, nelle textbox1 e 2 ci sono liste di parole divise tramite invio
    Ntinho

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472

    Moderazione

    Innanzitutto, il linguaggio deve essere indicato nel titolo, come specificato nel Regolamento che ti consiglio di leggere.

    Il codice deve essere inoltre formattato usando il tag [CODE].

    Infine, nel tuo caso non spieghi qual è il problema o l'errore che riscontri nel programma che hai scritto, cioè cosa accade che differisce da ciò che vuoi realmente ottenere.

    Fornisci le informazioni mancanti e tieni conto dei suggerimenti sopra per le discussioni future (il titolo l'ho già corretto io).

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it L'avatar di Ntinho
    Registrato dal
    Apr 2012
    Messaggi
    29
    Grazie! Visto che non mi fa modificare scrivo qui il problema. Inserendo la lista nella
    textbox1:Ciao
    Cane
    Cielo
    e la lista nella textbox2:Miao
    Viao
    Tano

    Ma il risultato nella richtextbox1 non è quello disiderato infatti è:
    If parola(r) =Cielo Then parola(r) =Tano
    Ntinho

  4. #4
    Utente di HTML.it L'avatar di rsdpzed
    Registrato dal
    Aug 2001
    Messaggi
    764
    nel primo ciclo assegni sempre a ris1 la concatenazione delle stringhe per cui a fine ciclo avrai solo l'ultimo risultato.
    Stessa cosa per il secondo ciclo: ris1 è sempre "then ecc. cielo" mentre ris 2 di volta in volta si accoda con "if ecc. ecc." fino ad arrivare all'ultima parola.
    Alla fine avrai solo l'ultimo risultato fatto dall'ultimo ris1 e l'ultimo ris2, peraltro errato se le textbox hanno due quantità diverse di parole.

    ris1 e ris2 devono essere array o liste e nei cicli for devi assegnare i formati stringa a ris1(r) (o ris2(r)). Alla fine con un terzo ciclo concateni ogni stringa di ris1 con la corrispondente di ris(2) e la assegni alla rich, tutto condito da un controllo sugli indici nel caso tu voglia gestire la possibilità che le textbox contengano numeri di parole diversi.

    Questo è quello che non andava. Il problema si puo risolvere anche con molte righe in meno di codice ma questo verrà col tempo se la programmazione sarà il tuo mestiere o materia di studio (non lo so). quello che invece devi da subito imparare a fare (ripeto: sempre se la programmazione è il tuo mestiere/materia di studio) è il tracing. E' una tecnica di debug che ti consente di eseguire il programma passo passo e scoprire cosa fa di diverso rispetto a quello che tu pensi che invece debba fare. E' una cosa che va imparata subito e ci si deve fare le ossa da soli su questi problemi molto molto semlici. E' solo un consiglio

  5. #5
    Utente di HTML.it L'avatar di Ntinho
    Registrato dal
    Apr 2012
    Messaggi
    29
    Grazie della risposta, mi sono avvicinato a questo mondo da meno di una settimana e ho fatto solo programmi semplice, come uno che raccogli riassunti e analisi dei promessi sposi. Per il momento è solo un piacere, magari più tardi studierò... Appena ho tempo provo come hai detto tu. Di nuovo grazie
    Ntinho

  6. #6
    Utente di HTML.it L'avatar di Ntinho
    Registrato dal
    Apr 2012
    Messaggi
    29
    Scusa, ho provato ma forse non ho capito:
    codice:
    Dim primoif As String         Dim secondothen As String         Dim listauno() As String         Dim listadue() As String         Dim r As Integer         Dim ris1() As String         Dim ris2() As String         secondothen = " Then parola(r) ="         primoif = "If parola(r) ="         listauno = Split(TextBox1.Text, vbCrLf)         listadue = Split(TextBox2.Text, vbCrLf)         For r = 0 To UBound(listauno)             ris1(r) = primoif + listauno(r)         Next         For r = 0 To UBound(listadue)             ris2(r) = listadue(r) + secondothen         Next         RichTextBox1.Text = ris1(r) + ris2(r)
    Cosa ho sbagliato?
    Ntinho

  7. #7
    Utente di HTML.it L'avatar di rsdpzed
    Registrato dal
    Aug 2001
    Messaggi
    764
    che la costruzione della richtext non la fai in un ciclo ma solo una volta, devi mettere anche quella in un ciclo for

  8. #8
    Utente di HTML.it L'avatar di Ntinho
    Registrato dal
    Apr 2012
    Messaggi
    29
    Come lo inserisco la richtextbox nel ciclo???
    Ntinho

  9. #9
    Utente di HTML.it L'avatar di escocat
    Registrato dal
    Feb 2012
    Messaggi
    308
    Se hai 2 vettori e una richtextbox la puoi mettere in un ciclo così:

    codice:
    Dim ar1(3), ar2(3) As String
     
    ar1(1) = "ciao"
    ar1(2) = "come"
    ar1(3) = "stai?"
    ar2(1) = "bene"
    ar2(2) = "grazie"
    ar2(3) = "e tu?"
    
    For i As Integer = 1 To 3
         RichTextBox1.Text = RichTextBox1.Text & ar1(i) & " " & ar2(i) & Chr(13)
    Next

  10. #10
    Utente di HTML.it L'avatar di Ntinho
    Registrato dal
    Apr 2012
    Messaggi
    29
    ma le liste le devo inserire tramite le due textbox, forse ho capito male...
    Ntinho

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 © 2025 vBulletin Solutions, Inc. All rights reserved.