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 - Ciclo For next
Forum - Visual Basic 6 - Ciclo For next

Avatar
swet (Normal User)
Pro


Messaggi: 128
Iscritto: 01/01/2009

Segnala al moderatore
Postato alle 23:10
Giovedì, 01/01/2009
Buonasera a tutti non riesco a capire come posso far funzionare questo ciclo :
Codice sorgente - presumibilmente VB.NET

  1. Private Sub Command2_Click()
  2. Dim cont As String
  3. Dim pos As Long
  4. Dim i As Integer
  5.  
  6.  
  7. cont = Len(a) + 2
  8.  
  9. pos = 1
  10. For i = 0 To cont
  11.  Text1.Text = Mid(a, pos, 1)
  12. pos = pos + 1
  13.  
  14. Next
  15. End Sub



La stringa è in formato A:\ B:\ dovrebbe prendere solamente le lettere e scriverle in un' altra variabile. Quando premo il pulsante non accade nulla. Cosa sbaglio?

PM Quote
Avatar
P4p3r0g4 (Member)
Guru


Messaggi: 1319
Iscritto: 29/12/2006

Segnala al moderatore
Postato alle 23:48
Giovedì, 01/01/2009
edit: avevo detto una cazzato ho corretto.
ora dovrebbe essere ok.

A mio parere non hai capito il codice che hai scritto.
hai mischiato un po i concetti.
cmq tranquillo tutti fanno errori all'inizio.

errore numero 1.
se fai cont = len(a) +2
e poi fai un ciclo da 0 a cont prendendo una lettera alla volta finirai con avere 3 lettere in più. ( quella per il valore 0 + le due aggiunte)
esempio se la stringa e lunga 4 il programma tenterà di prendere anche la 5 la 6 e la 7 lettera.

"errore" numero 2.
usi due variabili contatore.
c'è gia i che fa da variabile per il ciclo pos è assolutamente inutile (o viceversa).
ok non è un errore ma è uno spreco!

errore numero 3.
se vuoi riempire una variabile con dei dati mantenendo quelli precedenti devi fare
variabile = variabile & cosadaaggiungere
altrimenti se fai
variabile = cosadasggiungere
perderai tutto cio che c'era in precedenza nella variabile in quanto questa conterrà solo l'ultima cosa che hai aggiunto.

errore numero 4.
una textbox non è una variabile.


codice corretto

Codice sorgente - presumibilmente VB.NET

  1. Private Sub Command2_Click()
  2. Dim cont As String
  3. Dim pos As Long 'ho tenuto pos come variabile contatore
  4.  
  5. cont = Len(a) 'eliminato il +2
  6. text1.text = "" 'azzeriamo prima di riempire
  7. For pos = 1 To cont 'si parte da 1
  8. Text1.Text = text1.text & Mid(a, pos, 1)
  9. 'aggiungo il text1.text &
  10. Next pos ' questa è una mania personale, scrivere la variabile rende la vita più facile quando hai tanti cicli
  11. End Sub



Ultima modifica effettuata da P4p3r0g4 il 01/01/2009 alle 23:52
PM Quote
Avatar
swet (Normal User)
Pro


Messaggi: 128
Iscritto: 01/01/2009

Segnala al moderatore
Postato alle 0:04
Venerdì, 02/01/2009
ciao grazie della risposta, intanto che aspettavo che qualcuno mi rispondesse avevo già corretto un po il codice...provato con il tuo ma ottengo sempre la forma C:\, a me servirebbe avere C: senza \. come faccio? grazie!
EDIT: ho usato la funzione SPLIT in questo modo
Codice sorgente - presumibilmente Visual Basic 6

  1. s = Split(a, "\")
  2.     For i = 0 To UBound(s)
  3.         Text1.Text = Text1.Text & "" & s(i)
  4.     Next



e quindi ottengo C: D: se io adesso vorrei separlarle e mettere ad esempio c: in una variabile e d: in un altra? premetto che non credo si possa usare RIGHT e LEFT perchè adesso sono solo lettere ma in seguito potranno essere di meno o di più.grazie

Ultima modifica effettuata da swet il 02/01/2009 alle 0:58
PM Quote
Avatar
P4p3r0g4 (Member)
Guru


Messaggi: 1319
Iscritto: 29/12/2006

Segnala al moderatore
Postato alle 1:11
Venerdì, 02/01/2009
In effetti con il codice che hai postato lo hai gia fatto.
sono nel vettore s
s(0) contiene il primo
s(1) contiene il secondo ecc...

prova ad aggiungere una listbox e a fare
List1.Clear
For i = 0 To UBound(s)
List1.AddItem s(i)
Next i
e li vedrai belli che elencati.

PM Quote
Avatar
swet (Normal User)
Pro


Messaggi: 128
Iscritto: 01/01/2009

Segnala al moderatore
Postato alle 12:26
Venerdì, 02/01/2009
Grazie!!!! funziona..adesso mi sbatto un po per estrarre i valori uno alla volta e metterli in una variabile!! grazie ancora!

PM Quote
Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 19:37
Venerdì, 02/01/2009
ah lol era un doppio post...vbb rispondo pure qua...non conviene utilizzare la funzione Split?

PM Quote