Oppure

Loading
15/10/10 13:54
mcgyver86
Salve a tutti, vorrei un'informazione. Come da titolo, sto cercando di sostituire gli zeri in una textbox con dei numeri (in base agli zeri) e visualizzare il risultato in un'altra textbox.
So di non essere stato molto esaustivo, quindi faccio un esempio:

Ho 2 text, nella prima scrivo il numero 10000, nella seconda voglio che mi appaia 103 (10 con 3 zeri)

Vi chiedo: è possibile?

Avevo pensato di utilizzare 3 text dove nelle prima metti 2 cifre e nella seconda metti gli zeri, però non mi sembra tanto bello..

P.S.= mi sono appena avvicinato al vb6 quindi non sono una cima!

Grazie in anticipo a tutti!
aaa
15/10/10 14:14
Overflow
Non ho capito tanto bene la tua richiesta.

Inseriamo una cifra in una textbox(es. 10.000) nella seconda textbox dovrà comparire secondo l'esempio 103, dove 10 sta per la base e 3 sarebbero il numero degli zeri davanti??

Prova così poi lo commentiamo perchè ora devo scappare.
Dim c As String
Dim a As String
Dim pos As Integer
Dim i As Integer
Dim count As Integer

count = 0
i = 0
c = Text1.Text
a = c

pos = InStr(1, c, "0")  'posizione del primo zero
i = InStrRev(a, "0")

While (i > pos)             'fin quando non arrivo alla posizione dello zero iniziale
    i = InStrRev(a, "0")    'ottengo la posizione dell'ultimo zero
    a = Left(a, i - 1)      'elimino l'ultimo zero
    count = count + 1
Wend

count = count - 1
Text2.Text = Left(c, pos) + CStr(count)

aaa
15/10/10 14:26
mcgyver86
ci credi se ti dico che non ho capito una mazza??:d:d
grazie mille per la risposta, provo a studiarla!
aaa
15/10/10 14:48
Overflow
inizialmente inserisco nella variabile stringa c il contenuto di ciò che è stato scritto nella textbox(text1.text) e salvo questo valore anche nella variabile a.
Facciamo l'esempio che io inserisca nella textbox il valore 10000 cm di esempio, quindi la viariabile c = "10000" e anche la variabile a = "10000".

pos = InStr(1, c, "0")  'posizione del primo zero


la funzione instr ti dice la posizione della prima stringa "0" nel nostro caso nella stringa c. Cioè a che posizione si trova il primo zero?? nel nostro caso posizione 2(10000) quello in grassetto è il primo zero trovato nella stringa e si trova in pos 2, e ci salviamo questa posizione nella variabile pos.

'i = InStrRev(a, "0")
i = InStrRev(c, "0")


la funzione instrrev ritorna la posizione dell'ultimo "0" nella stringa e salva la posizione in i, nel nostro caso (10000 posizione 5 e la variaibile i vale 5).

While (i > pos)             'fin quando non arrivo alla posizione dello zero iniziale
    i = InStrRev(a, "0")    'ottengo la posizione dell'ultimo zero
    a = Left(a, i - 1)      'elimino l'ultimo zero
    count = count + 1
Wend


adesso facciamo un ciclo fin quando l'ultimo carattere della stringa non coincide con il primo 0 della stringa (while i>pos), e nel ciclo andrò a leggere sempre la posizione dell'ultimo zero e ad "accorciare" la nostra stringa.
La prima volta che entro nel ciclo avrò

i = InStrRev(a, "0";) essendo a = "10000" l'ultima posizione dello zero è al valore 5 quindi i è uguale a 5

a = Left(a, i - 1) sto "accorciando la nostra stringa, sto eliminando l'ultimo carattere quindi l'ultimo "0". sto dicendo che a deve essere uguale alla parte sinistra di a di una lunghezza pari a i-1(la lunghezza totale della stringa meno 1)
e dopo incremento count che mi conta il numero di zeri trovati.

Questo codice andrebbe messo in un command button.
Spero di essere stato chiaro
aaa
15/10/10 15:04
mcgyver86
:hail::hail::hail::hail::hail::hail::hail:

Chiaro?? sei stato chiarissimo

Grazie mille veramente, ora capisco!!

ora un altra domanda, se hai voglia di rispondere.

ho 2 textbox, vorrei che quando la textbox1 raggiunge 2 caratteri, il cursore si sposti automaticamente alla textbox2

avevo pensato ad un costrutto if:
dim c as string
c=text1
if len(c) =2 then
......................


non so cosa mettere dopo il then :-?:-?

grazie mille!
aaa
15/10/10 15:38
Overflow
il codice va scritto nell'evento change della textbox:

Private Sub Text1_Change()
If Len(Text1.Text) >= 2 Then
    Text2.SetFocus 'porto il cursore sull'altra textbox
End If
End Sub
aaa
15/10/10 17:21
mcgyver86
grazie mille!!

sei stato veramente gentile!

a presto!!
aaa
15/10/10 18:53
mcgyver86
vi disturbo ancora perchè non mi torna una cosa...

finchè utilizzo un numero in cui il secondo carattere è uno 0 tutto ok, ma se invece scrivo 87000 come risultato non ottengo 873 ma 8702.

grazie in anticipo!
aaa