maurizio74 (Normal User)
Pro
Messaggi: 116
Iscritto: 30/03/2009
|
buonasera a tutti,
con il listato sottoelencato riesco a splittare il testo di un text box in 3 diversi textbox come da immagine allegata.
Pero' con questo listato sono costretto a scrivere il numero nel textbox1 per come si vede cioè 1.23456.7 perchè se altrimenti come vorrei io volessi scrivere il numero in modo normale quindi senza il punto es. 1234567 il programma mi da errore. ho provato a togliere, "." ma non funziona .... qualcuno ha qualche suggerimento????? grazieeeeee
Dim a As String Dim b As String Dim c As String
Private Sub Command1_Click() a = Split(Text1.Text, "."(0) b = Split(Text1.Text, "."(1) c = Split(Text1.Text, "."(2) Text2.Text = a Text3.Text = b Text4.Text = c
End Sub
Ultima modifica effettuata da maurizio74 il 25/03/2024 alle 18:41 |
|
Carlo (Member)
Guru
Messaggi: 1352
Iscritto: 29/01/2018
|
Quando scrivi il codice, prima clicca il tastino [ code ] e poi tra gli identificativi metti il codice, altrimenti la finestra interpreta i caratteri come caratteri estesi, e vengono faccine e cose strane.
Il tuo codice VB6 messo in modo da evidenziare cosa fa Split:
Codice sorgente - presumibilmente Plain Text |
a = Split("1.23456.7", ".")(0) ' qui l'istruzione Split divide la stringa usando il punto come identificativo di separazione e prende la prima parte (0)
b = Split("1.23456.7", ".")(1) ' uguale ma la seconda parte (1)
c = Split("1.23456.7", ".")(2) ' uguale ma la terza parte (2)
d = Split("1.23456.7", ".")(3) ' errore perché non c'è una quarta parte (3)
|
L'identificativo di separazione lo scegli tu, se vuoi dei numeri con il punto decimale, come separatore non puoi usare il punto, devi cambiare separatore, per esempio il puntoevirgola:
Codice sorgente - presumibilmente Plain Text |
t = "1.23;456.7;40"
a = Split(t, ";")(0) ' = 1.23
b = Split(t, ";")(1) ' = 456.7
c = Split(t, ";")(2) ' = 40
|
Se non vuoi usare un separatore, l'istruzione Split non la puoi usare.
Per dividere le stringhe ci sono Left, Rigth e Mid
Codice sorgente - presumibilmente Visual Basic 6 |
a = Left("ABCDEFGHI", 2) ' = AB, due caratteri a sinistra
b = Right("ABCDEFGHI", 2) ' = HI, due caratteri a destra
c = Mid("ABCDEFGHI", 4, 3) ' = DEF, tre caratteri a partire dalla posizione 4
|
Ho messo delle lettere ma se sono cifre è uguale.
A scuola di VB6...
Ultima modifica effettuata da Carlo il 25/03/2024 alle 19:55
in programmazione tutto è permesso |
|
nessuno (Normal User)
Guru^2
Messaggi: 6405
Iscritto: 03/01/2010
|
Mi fa piacere che Carlo abbia risposto e penso abbia capito cosa intendi Maurizio.
Io nonnho capito nulla perchè il tuo discorso non ha nè capo nè coda.
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
maurizio74 (Normal User)
Pro
Messaggi: 116
Iscritto: 30/03/2009
|
Nessuno mi dispiace non essere stato chiaro come dovuto...
Ciao Carlo,
intanto grazie per la risposta e per la comprensione anche oltre il dovuto.... Hai ragione ho dimenticato di premere il code...
Cmq a dir la verita' m'era venuto il dubbio di non poter utilizzare split per dividere una stringa
perchè avevo provato in diversi modi e non c'era verso,
poi pero' ho pensato che magari non ero capace io e ci poteva esserci qualche soluzione con la funzione split del quale io ero all'oscuro...
Cmq grazieeee e alla prossima...
|
|
maurizio74 (Normal User)
Pro
Messaggi: 116
Iscritto: 30/03/2009
|
Postato originariamente da maurizio74:
Nessuno mi dispiace non essere stato chiaro come dovuto...
Ciao Carlo,
intanto grazie per la risposta e per la comprensione anche oltre il dovuto.... Hai ragione ho dimenticato di premere il code...
Cmq a dir la verita' m'era venuto il dubbio di non poter utilizzare split per dividere una stringa
perchè avevo provato in diversi modi e non c'era verso,
poi pero' ho pensato che magari non ero capace io e che poteva esserci qualche soluzione con la funzione split del quale io ero all'oscuro...
Cmq grazieeee e alla prossima... |
Ultima modifica effettuata da maurizio74 il 25/03/2024 alle 20:24 |
|
nessuno (Normal User)
Guru^2
Messaggi: 6405
Iscritto: 03/01/2010
|
Boh...
Ma non riesci a scrivere un post in italiano e che abbia un senso compiuto?
Tipo
1. Vorrei fare questa cosa e ho questi dati
2. Ho provato a farlo così
3. Non ha funzionato per questo motivo, che mi suggerite?
È difficile?
Ultima modifica effettuata da nessuno il 25/03/2024 alle 22:34
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
maurizio74 (Normal User)
Pro
Messaggi: 116
Iscritto: 30/03/2009
|
Buongiorno,
Sig. Nessuno, mi ero scusato per la mia poca chiarezza nel post precedente,
io sicuramente non sono bravo come Lei, nell'esporre in italiano ed in senso compiuto.
magari la prossima volta vedro' di fare piu' attenzione.
Grazie per il suggerimento
|
|
maurizio74 (Normal User)
Pro
Messaggi: 116
Iscritto: 30/03/2009
|
salve a tutti,
questa volta cerchero' di esprimere il mio problema al meglio...
allora su suggerimento di Carlo, ho visto che per dividere una stringa di 1 textbox su 3 textbox diversi
la soluziore più adatta sarebbe usare le funzioni left, right e mid e fin qui ci siamo,
1 -ora io ho un textbox1 settato con un inserimento max di 3 caratteri es.(ABC) e 3 textbox dove dividere le 3 lettere.
2 -io vorrei poterli estrarre da destra e posizionarli nei 3 textbox sempre da destra
quindi la C nel textbox4 la B nel textbox3 e la A nel textbox2
fin qui utilizzando le funzioni left-right- e mid e tutto ok...
Codice sorgente - presumibilmente VB.NET |
Dim a As String Dim b As String Dim c As String Private Sub Command1_Click() a = Left(Text1.Text, 1) b = Mid(Text1.Text, 2, 1) c = Right(Text1.Text, 1) Text2.Text = a Text3.Text = b Text4.Text = c End Sub
|
pero' quello che vorrei ottenere è che se ad esempio nel textbox1 invece di mettere 3 caratteri ne metto solamente 1, il textbox3 e il texbox 2 dovrebbero rimanere vuoti.
allego 1 immagine
ho provato in altri diversi modi ma nulla non riesco...
spero di essere stato un po' piu' chiaro e ringrazio in anticipo....
Ultima modifica effettuata da maurizio74 il 26/03/2024 alle 16:59 |
|
Carlo (Member)
Guru
Messaggi: 1352
Iscritto: 29/01/2018
|
Codice sorgente - presumibilmente VB.NET |
Dim a As String Dim b As String Dim c As String Private Sub Command1_Click() If Len(Text1.Text) = 3 Then a = Left(Text1.Text, 1) b = Mid(Text1.Text, 2, 1) c = Right(Text1.Text, 1) End If If Len(Text1.Text) = 2 Then a = "" b = Left(Text1.Text, 1) c = Right(Text1.Text, 1) End If If Len(Text1.Text) = 1 Then a = "" b = "" c = Text1.Text End If Text2.Text = a Text3.Text = b Text4.Text = c End Sub
|
in programmazione tutto è permesso |
|