|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Dec 2007
Messaggi: 7158
|
[VB] Contare i "|" all'interno della striga
Premetto che non so praticamente nulla di VB, ma cercherò di spiegare un po meglio quello che voglio fare.
Sto facendo una lista di ricette con vari ingredienti da mettere in varie variabili una volta che ho inserito tutti gli ingredienti salvo il tutto con un nome che viene aggiunto nella listbox all'interno di questa listbox sto utilizzando una variabile "ListaRicette" di tipo stringa, ogni ricetta che salvo viene aggiunta in "ListaRicette", dovrei però mettere un limite alla ricette che posso aggiungere nella listbox, volevo farlo contando i "pipe" che ci sono nella stringa "ListaRicette". Questo è quello che mi è venuto in mente lo so che non funziona, ma ho pensato una cosa simile, spero che qualcuno mi aiuto a farlo funzionante. Tramite pulsante Public Sub Click() check = InStr (ListaRicette,"|") <> 0 Left (ListaRicette, check + 1) cont = + 1 If cont >= 10 Then AbilitoSave = false End If End Sub
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jan 2014
Messaggi: 852
|
Invece di utilizzare una stringa usa una collection, è molto più semplice da gestire.
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Dec 2007
Messaggi: 7158
|
No, devo cercare di seguire quello che sto facendo
Mi son dimenticato anche di dire che non sto usando il programma Visual Basic, ma un programma che mi permette di creare alcuni script in visual basic |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Jan 2014
Messaggi: 852
|
E che roba è? Tanto vale che usi vb script!
Comunque la funzione instr ha un parametro opzionale che indica la posizione di partenza della ricerca. Chiamando ripetutamente instr partendo dalla posizione successiva a quella trovata in precedenza fino a quando il carattere viene trovato, ed incrementando un contatore ad ogni iterazione, otterrai all'uscita dal ciclo il numero di occorrenze del carattere che ti interessa. |
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Dec 2007
Messaggi: 7158
|
Quote:
|
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Jan 2014
Messaggi: 852
|
Codice:
n = 0 p = instr(1, ListaRicette, "|") do while p > 0 n = n + 1 p = instr(p + 1, ListaRicette, "|") loop |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Dec 2007
Messaggi: 7158
|
Siii! ha funzionato dopo qualche piccola modifica al programma sono riuscito a farlo funzionare come volevo
Grazie mille |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Dec 2007
Messaggi: 835
|
Puoi fare tutto con una sola istruzione..
Dim sTmp() As String sTmp = Split(ListaRicette, "|") Debug.Print UBound(sTmp) Dichiari un array di stringhe e lo popoli splittando per "|" la stringa di origine. Tramite l'UBound, ricavi la dimensione del nuovo array. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:01.




















