Oppure

Loading
20/10/18 11:04
Progy
Di nuovo un saluto a tutti.

Vi espongo il mio problema.

Avrei la necessità, nel mio programma, di far si che le parole presenti in una
Textbox (oppure in una RichTextBox), vengano passate ad un differente
contenitore (un altra Textbox, oppure una Listbox).
Ovviamente, si potrebbe dire: "e che ci vuole?"
Ci vuole!
Perchè il mio problema consiste nel fatto, che le parole, non devono essere
sottoposte ad un trasferimento globale, ma piuttosto, ad una
selezione manuale (o successivamente, voglio provvedere ad automatizzare
il processo) e scandita da una temporizzazione.
In un primo momento (quello di cui ho bisogno adesso), dovrei far si che ad ogni
Click di un Command Button, le parole presenti in (diciamo) Textbox1,
siano copiate o anche trasferite ad una Textbox2, rispettando ovviamente
l'ordine di immissione (ovvero: rispettando il Testo, così come era in origine)

pero idi essere stato chiaro, e mi auguro che a qualcuno possa interessare la cosa,
anche per un possibile aiuto!

Grazie, e ciao!!
aaa
20/10/18 11:30
Non sei stato per nulla chiaro.

Dato che la risposta come

Text1.text = Text1.text & Text2.Text

è veramente banale e non credo tu voglia questo, vuol dire che non ti sei spiegato.


P.S. Sei sicuro di utilizzare VB6? Mi sa che non ti è chiara la versione di linguaggio con cui lavori ...
Ultima modifica effettuata da 20/10/18 11:42
20/10/18 21:29
Progy
Allora...

Hum... Forse non sono stato chiaro, perchè a volte è meglio essere sintetici,
però siccome, quì si richiede di descrivere il problema, mi sono dilungato...
Forse nel modo errato.

OK!
Ci riprovo!

Innanzitutto, sono sicuro che sia Visual Basic 6... Perchè è quello che mi esce
scritto quando apro il programma...
Poi, per quello che mi servirebbe fare:

HO (in fase di prova, solo per quanto concerne questa funzione):

1) Textbox1
2) Textbox2
3) Command1

- Carico un file di testo in Textbox1
--- (per esempio:)
------- "Oggi è davvero una bella giornata!"

- Textbox2 è vuoto;

- Clicco (ogni volta che ne ho voglia!) su Command1...

E quello che vorrei ottenere e che in Textbox2 vengano passati
in modo consecutivo, le parole della frase:

1° Click --> Textbox2 = "Oggi"
2° Click --> Textbox2 = "è"
3° Click --> Textbox2 = "proprio"
4° Click --> Textbox2 = "una"
5° Click --> Textbox2 = "bella"
6° Click --> Textbox2 = "giornata!"

Ovviamente, come dicevo precedentemente, la funzione del click, può essere automatizzata
magari con un timer, quindi, non dovrei stare a clikkare 100 volte per completare una frase più
lunga!

E poi (ma questo non l'ho menzionato sopra) aggiungerò una cosa extra, perchè dopo aver fatto
questo processo, mi sarebbe semplicissimo realizzare una ulteriore textbox, dove il testo vi ci finisce
per intero una volta finito, ovvero come era stato suggerito:

Text3.text = Text2.text
Text3.text = Text3.text & Text2.Text

o via di lì, a seconda di come voglio ultimarlo, infatti:

Nel processo sopra descritto, o si potrebbe semplicemente far leggere la textbox1, senza apportare
alcun tipo di modifica, o in maniera alternativa, si potrebbe rimuovere ogni parola, una volta letta.

Questo è il mio problema!
Spero di aver reso al meglio il quadro!

aaa
21/10/18 7:04
Una cosa del genere ti può servire come spunto, ma devi adattarla a quello che ti serve ed aggiungere la parte del trasferimento (che lascio a te)

Dim pos As Long

Private Sub Command1_Click()
    Text2.Text = SingolaParola(Text1.Text, pos)
End Sub

Private Function SingolaParola(frase As String, opos As Long) As String
    Dim wrd As String
    
    wrd = ""
    
    If Len(frase) Then
        Dim pos As Long
        
        pos = InStr(opos, frase, " ")
        If pos Then
            wrd = Mid(frase, opos, pos - opos)
            opos = pos + 1
        Else
            If opos > pos Then
                wrd = Mid(frase, opos)
                opos = 1
            End If
        End If
    End If
    
    SingolaParola = wrd
End Function

Private Sub Form_Load()
    pos = 1
End Sub
22/10/18 8:57
Progy
Innanzitutto: Grazie per la risposta e per il suggerimento!

In questo preciso momento, non ho tempo per farlo, ma più tardi,
darò un occhiata al codice per esaminarlo e vedere se posso
estrapolare qualcosa per 'la mia abbisogna' !!!

Ti faccio sapere.
aaa
22/10/18 11:18
Progy
:k:

Hai colto nel segno!

Infatti questa funzione fa esattamente quanto avevo chiesto!

Ho potuto testarla, è ho visto come funziona.
Ho riscontrato un problema sull'utilizzo, nel momento in cui si trova ad
affrontare un punto e a capo!!

(Ovvero: con una frase finita - a capo - riga vuota - inizio nuova riga,
in cui trova la soluzione di ripetere un pezzo per intero:
ultima parola. - spazio vuoto - Prima parola del rigo successivo
poichè, ovviamente, la funzione si va a cercare gli spazi vuoti!
Ma ci posso lavorare ovviamente!)

Io avevo trovato una soluzione alternativa, come avevo accennato in un primo momento,
ovvero:

Creare una contenitore che 'duplicava' il testo, e poi lo selezionava/sezionava una parola alla volta,
eliminandola, perchè in questo modo non mi calcolava i 'vuoti'



Comunque Grazie ancora!

Avere DUE soluzioni, è senz'altro meglio che non averne NESSUNA! :rofl:
aaa
22/10/18 11:18
Progy
:k:

Hai colto nel segno!

Infatti questa funzione fa esattamente quanto avevo chiesto!

Ho potuto testarla, è ho visto come funziona.
Ho riscontrato un problema sull'utilizzo, nel momento in cui si trova ad
affrontare un punto e a capo!!

(Ovvero: con una frase finita - a capo - riga vuota - inizio nuova riga,
in cui trova la soluzione di ripetere un pezzo per intero:
ultima parola. - spazio vuoto - Prima parola del rigo successivo
poichè, ovviamente, la funzione si va a cercare gli spazi vuoti!
Ma ci posso lavorare ovviamente!)

Io avevo trovato una soluzione alternativa, come avevo accennato in un primo momento,
ovvero:

Creare una contenitore che 'duplicava' il testo, e poi lo selezionava/sezionava una parola alla volta,
eliminandola, perchè in questo modo non mi calcolava i 'vuoti'



Comunque Grazie ancora!

Avere DUE soluzioni, è senz'altro meglio che non averne NESSUNA! :rofl:
aaa