Nån som har en kodsnutt som sorterar en array så att det bara finns en förekomst av varje värde kvar? Eller finns det nåt inbyggt i VB för detta? hej Hej Public Sub RemoveDup(ByRef sArray() As String) Hade det varit Smalltalk i st f VB så hade svaret varit:Sortera array
Det kanske är bättre att använda ett recordset om det finns nån inbyggd metod för det, nån som vet?Sv: Sortera array
En gammal fråga som får nyränesans med jämna mellanrum
Hämta ett gammalt prog som jag lagt ut för länge sen.
http://www.pellesoft.nu/upload/QuickSort.zip
sen får du gå genom denna array med FindDubblett
mvh
SvenSv: Sortera array
Ett exempel på en Funktion som kollar om det finns dubbletter
Du skickar hela Arrayen och ser till att den har rätt
som i mitt exemel "As String" du vill kanske vill ha As Double osv osv.
Private Function FindDubblett(inArray() As String) As Boolean
Dim i As Long, j As Long, lastItem As Long
Dim tmpStr As String
lastItem = UBound(inArray)
For i = LBound(inArray) To lastItem
tmpStr = inArray(i)
For j = i + 1 To lastItem
If tmpStr = inArray(j) Then
'do youre stuf here
FindDubblett = True
Exit Function
End If
Next 'j
Next ' i
FindDubblett = False
End Function
mvh
SvenSv: Sortera array
' Denna sub tar bort dubbletter i en array
Dim j As Long
Dim k As Long
Dim p As Long
Dim q As Long
Dim Nod() As String
ReDim Nod$(UBound(sArray$))
p = UBound(sArray$) ' Högsta värdet
q = 1
For j = 1 To p
DoEvents
For k = 1 To q
DoEvents
If sArray$(j) = Nod$(k) Then
Exit For
Else
If Nod$(k) = "" Then
Nod$(k) = sArray$(j)
q = q + 1
Exit For
End If
End If
Next k
Next j
j = q - 1
ReDim Preserve Nod$(j)
ReDim Preserve sArray$(j)
sArray$ = Nod$
Erase Nod$
End SubSv: Sortera array
minArray asSet asSortedCollection
I första steget försvinner alla dubletter i andra steget sorteras det hela.
Vill man ha tillbaka arrayen slägger man bara till asArray.
Varför är det inte så enkelt i VB ???
- Hans