Oppure

Loading
25/03 16:13
maurizio74
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 25/03 17:41
aaa
25/03 18:37
Carlo
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:
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:
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

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 25/03 18:55
in programmazione tutto è permesso
25/03 19:07
nessuno
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à.
25/03 19:22
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 ci poteva esserci qualche soluzione con la funzione split del quale io ero all'oscuro...

Cmq grazieeee e alla prossima...
aaa
25/03 19:23
maurizio74
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 25/03 19:24
aaa
25/03 21:00
nessuno
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 25/03 21: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à.
26/03 9:23
maurizio74
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
aaa
26/03 15:56
maurizio74
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...
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 26/03 15:59
aaa