| 	
	
	
		
		|||||||
  | 
		
| 
 | 
![]()  | 
	
	
| 
		 | 
	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: 15:42.









		
		
		
		

		
 
 







