|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Sep 2004
Messaggi: 2067
|
Operazioni sul testo di una TextBox in Visual Basic 2005
Ciao a tutti,
ho una richiesta da fare ai programmatori + esperti. Ho un form con una TextBox, e vorrei che venissero apportate modifiche da me definite ad un testo che vado ad incollare nella suddetta textbox. Ad esempio, vorrei che all'inizio di ogni riga, qualsiasi sia il numero di righe, venisse posto uno spazio. Come fare ? E al contrario come rimuovere uno spazio (l'ultimo carattere) che si trova alla fine di ogni riga ? In ultimo vorrei sapere come rimuovere il 7mo valore a partire dalla fine di ogni riga, considerando che per valore io intendo un numero composto in questa maniera: 15.00 e immaginando questa stringa: bla bla bla 1200 3.00 4.00 5.00 6.00 5.00 7.00 8.50 (spazio) vorrei che il risultato finale fosse questo: (spazio) bla bla bla 1200 4.00 5.00 6.00 5.00 7.00 8.50 Mi sapete indicare il metodo da usare ?
__________________
Notebook Acer Aspire 5920G modded: Intel Core 2 Duo T9500, NVIDIA GeForce GT 240M 1 GiB DDR3, Hitachi TravelStar 7K1000 1 TB, Corsair VS 2 x 4 GiB DDR2-800, Optiarc AD-7630A & Intel 7260 AC Dual Band. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jun 2005
Città: Mestre (VE)
Messaggi: 1415
|
Questo è il codice del pulsante Button1 ... che prende e salva il testo in TextBox1 ... ho provato e funziona ... sempre che l' ultima riga non sia solamente una riga vuota (almeno questo caso no l'ho provato)
Codice:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim righe() As String
Dim parole() As String
righe = Split(TextBox1.Text, vbCrLf)
Dim i, k As Integer
For i = 0 To UBound(righe)
righe(i) = Trim(righe(i))
parole = Split(righe(i), " ")
righe(i) = ""
For k = 0 To (UBound(parole) - 7)
righe(i) &= parole(k) & " "
Next
For k = (UBound(parole) - 5) To UBound(parole)
righe(i) &= parole(k) & " "
Next
righe(i) = " " & Trim(righe(i))
Next
TextBox1.Text = ""
For i = 0 To UBound(righe)
TextBox1.Text &= righe(i) & vbCrLf
Next
End Sub
__________________
IN WIN 909 / AMD Ryzen 9 3950X / Gigabyte X570 Aorus Xtreme / 4x8gb G.Skill 3200 / Gigabyte Aorus RTX2080Ti Xterme / 2x Gigabyte Aorus NVMe M.2 1Tb / Corsair AX1200i / full liquid EK - Bitspower / circa 160 trattative nel mercatino |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Sep 2004
Messaggi: 2067
|
Grazie mille.
Funge come dovuto.
__________________
Notebook Acer Aspire 5920G modded: Intel Core 2 Duo T9500, NVIDIA GeForce GT 240M 1 GiB DDR3, Hitachi TravelStar 7K1000 1 TB, Corsair VS 2 x 4 GiB DDR2-800, Optiarc AD-7630A & Intel 7260 AC Dual Band. |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Jun 2005
Città: Mestre (VE)
Messaggi: 1415
|
Attento che ogni riga sia nel tuo formato, che non ci siano righe in mezzo o alla fine vuote o altro, perchè avendo fatto la routine in velocità non ho fatto il controllo di riga vuota o altri controlli sulle righe ...
Poi sicuramente si potrebbe ottimizzare ... ma appunto l' ho fatto in velocità tanto per darti una traccia. Buono smanettamento in VB2005
__________________
IN WIN 909 / AMD Ryzen 9 3950X / Gigabyte X570 Aorus Xtreme / 4x8gb G.Skill 3200 / Gigabyte Aorus RTX2080Ti Xterme / 2x Gigabyte Aorus NVMe M.2 1Tb / Corsair AX1200i / full liquid EK - Bitspower / circa 160 trattative nel mercatino |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Sep 2004
Messaggi: 2067
|
Grazie tante.
Vorrei ancora sapere un'altra cosa: per cancellare ANCHE il 30mo valore a partire dalla fine come devo fare ?
__________________
Notebook Acer Aspire 5920G modded: Intel Core 2 Duo T9500, NVIDIA GeForce GT 240M 1 GiB DDR3, Hitachi TravelStar 7K1000 1 TB, Corsair VS 2 x 4 GiB DDR2-800, Optiarc AD-7630A & Intel 7260 AC Dual Band. |
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Jun 2005
Città: Mestre (VE)
Messaggi: 1415
|
Quote:
In pratica il funzionamento è questo: in un array parole() metto tutte i pezzi della riga spazi esclusi; poi visto che devi visualizzare di nuovo tutti i pezzi separati da spazio esclusi alcuni (esempio il 30° ed il 7° in questo caso) allora faccio un ciclo FOR che cicla tutto l' array dalla sua prima posizione (la 0) fino alla posizione prima del pezzo da non visualizzare (ovvero la 30° posizione a partire dall' ultimo) e ricomincio il ciclo FOR dalla posizione dopo quella del pezzo da non visualizzare fino a quella prima del prossimo pezzo da non visualizzare ... poi di nuovo il ciclo dalla posizione dopo il pezzo da non visualizzare fino alla fine; sembra complicato ma non è difficile. La funzione Ubound(array) indica l' indice dell' ultimo elemento dell' array, sapendo che l' array parte da indice 0, Ubound indica l' indice n-1 ... per quello nel ciclo considero incluso anche la posizione Ubound(parole) - 30 perchè l' ultimo essendo n-1, quella posizione sarebbe n-31 e quindi proprio quella prima della 30° da scartare ... stesso discorso per il 7° ... Beh prova a vedere se hai capito ...
__________________
IN WIN 909 / AMD Ryzen 9 3950X / Gigabyte X570 Aorus Xtreme / 4x8gb G.Skill 3200 / Gigabyte Aorus RTX2080Ti Xterme / 2x Gigabyte Aorus NVMe M.2 1Tb / Corsair AX1200i / full liquid EK - Bitspower / circa 160 trattative nel mercatino |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:23.



















