mash_mash (Normal User)
Expert
Messaggi: 230
Iscritto: 25/07/2007
|
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 ?
|
|
gantonio (Normal User)
Guru^2
Messaggi: 1532
Iscritto: 09/09/2007
|
Con un semplice ciclo for ...
|
|
P4p3r0g4 (Member)
Guru
Messaggi: 1319
Iscritto: 29/12/2006
|
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 il 29/09/2007 alle 15:54 |
|
mash_mash (Normal User)
Expert
Messaggi: 230
Iscritto: 25/07/2007
|
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
|
|
gantonio (Normal User)
Guru^2
Messaggi: 1532
Iscritto: 09/09/2007
|
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 ???? |
|
mash_mash (Normal User)
Expert
Messaggi: 230
Iscritto: 25/07/2007
|
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
|
|
gantonio (Normal User)
Guru^2
Messaggi: 1532
Iscritto: 09/09/2007
|
Postato originariamente da mash_mash:
oregon001 |
gantonio, l'altra e' l'email ...
Per l'esattezza, quel codice non era mio ...
Comunque, nel caso di lettere (e non parole) prova
Codice sorgente - presumibilmente VB.NET |
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"
|
|
|
mash_mash (Normal User)
Expert
Messaggi: 230
Iscritto: 25/07/2007
|
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
|
|
mash_mash (Normal User)
Expert
Messaggi: 230
Iscritto: 25/07/2007
|
per OREGON001 , ho provato ad usare il tuo codice , ma non gira.
Mi si ferma sull'ultima linea dicendomi che manca un oggetto .
Che posso fare ?
|
|