Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    583

    array tenere solo gli elementi doppi

    Ciao a tutti,
    Mi servirebbe una funzione che applicata ad un'array mi mantenga solamente gli elementi che si ripetono e gli altri li elimini.

    Tipo

    Array(1,1,2,3,4,2,4,5,6)

    Func su Array

    Array(1,2,4)

    E' un po' che smanetto, ma.....
    Avete suggerimenti?

    Grazie

  2. #2
    Utente di HTML.it L'avatar di fero
    Registrato dal
    Dec 2000
    Messaggi
    265
    io farei un ciclo sul primo array memorizzando i dati in una stringa(magari separati da virgola)

    a quel punto, sempre in un ciclo dell'array, faccio l'instr del valore

    se > 0 spezzo la stringa da quel punto e faccio di nuovo l'instr
    se >0 inserisco in un nuovo array il valore.


    se intendevi questo posso scriverti un po di codice.....


    codice:
    dim NewArr()
    countNewArr=0
    str=","
    
    for i=0 to ubound(Array)
       Str=Str & Array(i) & ","
    next
    
    for i=0 to ubound(Array)
       if instr(str,"," & Array(i) & "," )>0 then
          newstr=left(str,(len(str)-instr(str,Array(i)))
          if instr(newstr,"," & Array(i) & ",")>0 then
             redim preserve NewArr(countNewArr)
             NewArr(countNewArr)=Array(i)
             countNewArr=countNewArr+1
          end if
       end if
    next
    un po contorto.....
    Fero
    Vuoi conoscere nuovi Amici?

  3. #3
    Utente di HTML.it L'avatar di Umanista
    Registrato dal
    Jan 2002
    Messaggi
    1,022
    oppure puoi fare una cosa del genere. Non so se ne vale la pena.

    codice:
    	arrValori = Array(1,1,2,3,4,2,4,5,6) 
    	arrNewArray()
    	
    	Dim i, j, y
    	y = 0
    	
    	For i = 0 To UBound(arrValori)
    		
    		For j 0 To UBound(arrValori)
    			If arrValori(i) = arrValori(j)
    				arrNewArray(y) = arrValori(i)
    				y = y + 1
    			Then
    			
    		Next
    	
    	Next

  4. #4
    Utente di HTML.it L'avatar di Umanista
    Registrato dal
    Jan 2002
    Messaggi
    1,022
    Originariamente inviato da Umanista
    oppure puoi fare una cosa del genere. Non so se ne vale la pena.

    codice:
    	arrValori = Array(1,1,2,3,4,2,4,5,6) 
    	arrNewArray()
    	
    	Dim i, j, y
    	y = 0
    	
    	For i = 0 To UBound(arrValori)
    		
    		For j 0 To UBound(arrValori)
    			If arrValori(i) = arrValori(j) Then
    				arrNewArray(y) = arrValori(i)
    				y = y + 1
    			End If			
    		Next
    	
    	Next
    avevo scritto male

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    583
    Grazie a tutti, adesso provo.

  6. #6
    codice:
    function totVolte(stringa,carattere)
      tot=0
      for i=1 to len(stringa)
        if(instr(i,stringa,carattere)>0) then
          tot = tot + 1
          i=instr(i,stringa,"c")
        end if
      next
      totVolte=tot
    end function
    
    arrValori = Array(1,1,2,3,4,2,4,5,6)
    
    str = UNsplit(arrValori,",")
    
    for i=0 to ubound(arrValori)
     if totVolte(str,""&arrValori(i))>1 and instr(1,exit,""&arrValori(i))=0 then
       exit = exit&","&arrValori(i)
     end if
    next
    
    if right(exit,1)="," then
      exit=left(exit,len(exit)-1)
    end if
    
    arrDoppi = split(exit,",")
    così dovrebbe andare
    Purtroppo bisogna imparare che il computer non sbaglia...fa solo quello che gli dici di fare

    www.netpolaris.it

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    583
    Perfetto!!

    Grazie mille....ed ho anche capito come funziona

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.