Oppure

Loading
28/09/07 10:58
mash_mash
problemino :
avrei bisogno di estrarre da una stringa una lettera e di avere anche il numero delle lettere estratte.
es. text1.text = "d100 + d100 + F + F"
.
vorrei che nella text2.text si ottenesse questo risultato : "2 F"
(cioe' nella stringa ci sono 2 F)
.
Ovviamento il valore da estrarre e' noto(la "F" in questo caso) , mentre non e' nota la stringa (e' una variabile).
E' possibile farlo ?
aaa
28/09/07 17:24
gantonio
Con un semplice ciclo for ...
aaa
29/09/07 13:49
P4p3r0g4
un semplice ciclo con mid o instr dovrebbe bastare.



for x = 1 to (len(text1.text)-len(stringa)+1)
if mid(text1.text,x,Len(stringa))=stringa then
quantevolte = quantevolte+1
end if
next x

se lo usi spesso crea una function.
Ultima modifica effettuata da P4p3r0g4 29/09/07 13:54
aaa
02/10/07 6:39
mash_mash
ragazzi , vi stresso lo ammetto. ma e' cosi' interessante Vb che vorrei sempre saperne di piu'.
Ho provato a lavorare con il codice che mi hai scritto , ma ammetto ci ho capito pochino.
saro' piu chiaro nel descrivere il mio problema :

textbox1.text = "100 + 100 + F + F + "
-istruzioni
-istruzioni
-istruzioni
textbox2.text = "2 F" 'ovvero le 3 F della textbox1

saresti cosi gentile da descrivermi il codice inviatomi in modo tale da poterci capire meglio ?ograzie

aaa
02/10/07 8:09
gantonio
Postato originariamente da mash_mash:
saro' piu chiaro nel descrivere il mio problema :
...

textbox2.text = "2 F" 'ovvero le 3 F della textbox1
...


Meno male che volevi essere piu' chiaro ... :)

2 F ovvero le 3 F ????
aaa
02/10/07 11:11
mash_mash
perdonami , ma la voglia di imparare e' tanta che mi mette fretta e sbaglio a digitare.
son 2 le "F" .
Cerco di essere + esplicito possibile (forse):
nel testo(che variera' di volta in volta) della textbox1 compaiono (nel mio esempio delle lettere F , ma potrebbero essere altre o addiruttura potrebbe essere una parola) delle lettere , che una volta "contate" dovro' inserire nel testo della textbox2.
ovvero :
textbox1.text = "100 + F + 100 + F"
-
-
-codice
-
risultato : textbox2 = "2 F".

oregon001 , visto che ormai ti ho eletto mio salvatore , avresti la cortesia di spiegarmi il codice che occorre ?
Ho provato con il ciclo for (come da te suggeritomi) :

for x = 1 to (len(text1.text)-len(stringa)+1)
if mid(text1.text,x,Len(stringa))=stringa then
quantevolte = quantevolte+1
end if
next x

, ma credimi purtroppo ho capito pochino.
grazie per la gentilezza
aaa
02/10/07 12:41
gantonio
Postato originariamente da mash_mash:
oregon001


gantonio, l'altra e' l'email ...

come da te suggeritomi


Per l'esattezza, quel codice non era mio ...

Comunque, nel caso di lettere (e non parole) prova

    Dim i As Long
    Dim c As Long
    
    c = 0
    For i = 1 To Len(s)
        If Mid$(Text1.Text, i, 1) = "F" Then c = c + 1
    Next i
    Text2.Text = CStr(c) & " F"
aaa
02/10/07 14:23
mash_mash
Oregon00 : grazie 1000.
ti ringrazio un sacco.
Ti chiedo l'ultima cortesia :
mi commenti questo codice (come da te ricordatomim non tuo) , vorrei capire meglio il suo funzionamento :

for x = 1 to (len(text1.text)-len(stringa)+1)
if mid(text1.text,x,Len(stringa))=stringa then
quantevolte = quantevolte+1
end if
next x
aaa