Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - SPLITTARE 1TEXT BOX IN 3 TEXTBOX
Forum - Visual Basic 6 - SPLITTARE 1TEXT BOX IN 3 TEXTBOX

Pagine: [ 1 2 3 ] Precedente | Prossimo
Avatar
maurizio74 (Normal User)
Pro


Messaggi: 116
Iscritto: 30/03/2009

Segnala al moderatore
Postato alle 17:13
Lunedì, 25/03/2024
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


maurizio74 ha allegato un file: Immagine.png (9538 bytes)
Clicca qui per guardare l'immagine

Ultima modifica effettuata da maurizio74 il 25/03/2024 alle 18:41
PM Quote
Avatar
Carlo (Member)
Guru


Messaggi: 1352
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 19:37
Lunedì, 25/03/2024
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

  1. 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)
  2. b = Split("1.23456.7", ".")(1) ' uguale ma la seconda parte (1)
  3. c = Split("1.23456.7", ".")(2) ' uguale ma la terza parte (2)
  4. 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

  1. t = "1.23;456.7;40"
  2.  
  3. a = Split(t, ";")(0) ' = 1.23
  4. b = Split(t, ";")(1) ' = 456.7
  5. 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

  1. a = Left("ABCDEFGHI", 2) ' = AB, due caratteri a sinistra
  2. b = Right("ABCDEFGHI", 2) ' = HI, due caratteri a destra
  3. 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
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6405
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 20:07
Lunedì, 25/03/2024
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à.
PM Quote
Avatar
maurizio74 (Normal User)
Pro


Messaggi: 116
Iscritto: 30/03/2009

Segnala al moderatore
Postato alle 20:22
Lunedì, 25/03/2024
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...

PM Quote
Avatar
maurizio74 (Normal User)
Pro


Messaggi: 116
Iscritto: 30/03/2009

Segnala al moderatore
Postato alle 20:23
Lunedì, 25/03/2024
Testo quotato

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
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6405
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 22:00
Lunedì, 25/03/2024
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à.
PM Quote
Avatar
maurizio74 (Normal User)
Pro


Messaggi: 116
Iscritto: 30/03/2009

Segnala al moderatore
Postato alle 10:23
Martedì, 26/03/2024
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

PM Quote
Avatar
maurizio74 (Normal User)
Pro


Messaggi: 116
Iscritto: 30/03/2009

Segnala al moderatore
Postato alle 16:56
Martedì, 26/03/2024
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

  1. Dim a As String
  2. Dim b As String
  3. Dim c As String
  4.  
  5. Private Sub Command1_Click()
  6. a = Left(Text1.Text, 1)
  7. b = Mid(Text1.Text, 2, 1)
  8. c = Right(Text1.Text, 1)
  9.  
  10. Text2.Text = a
  11. Text3.Text = b
  12. Text4.Text = c
  13.  
  14. 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....



maurizio74 ha allegato un file: Immagine.png (9405 bytes)
Clicca qui per guardare l'immagine

Ultima modifica effettuata da maurizio74 il 26/03/2024 alle 16:59
PM Quote
Avatar
Carlo (Member)
Guru


Messaggi: 1352
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 18:15
Martedì, 26/03/2024
Codice sorgente - presumibilmente VB.NET

  1. Dim a As String
  2. Dim b As String
  3. Dim c As String
  4.  
  5. Private Sub Command1_Click()
  6.  
  7.     If Len(Text1.Text) = 3 Then
  8.         a = Left(Text1.Text, 1)
  9.         b = Mid(Text1.Text, 2, 1)
  10.         c = Right(Text1.Text, 1)
  11.     End If
  12.  
  13.     If Len(Text1.Text) = 2 Then
  14.         a = ""
  15.         b = Left(Text1.Text, 1)
  16.         c = Right(Text1.Text, 1)
  17.     End If
  18.  
  19.     If Len(Text1.Text) = 1 Then
  20.        a = ""
  21.        b = ""
  22.        c = Text1.Text
  23.     End If
  24.  
  25.     Text2.Text = a
  26.     Text3.Text = b
  27.     Text4.Text = c
  28.  
  29. End Sub



in programmazione tutto è permesso
PM Quote
Pagine: [ 1 2 3 ] Precedente | Prossimo