; Parameter für Liste erzeugen
Structure inhalt
artikel.s
sortiment.s
EndStructure
Global NewList sortiment.inhalt()
Global Dim SortimentenListe.s( 100 )
Global count.i
AddElement(sortiment())
sortiment()\artikel = "12334uiu"
sortiment()\sortiment = "Fleisch"
AddElement(sortiment())
sortiment()\artikel = "8235408280458"
sortiment()\sortiment = "Fleisch"
AddElement( sortiment() )
sortiment()\artikel = "F894059432"
sortiment()\sortiment = "Fleisch"
AddElement(sortiment())
sortiment()\artikel = "28742973549"
sortiment()\sortiment = "Obst"
AddElement(sortiment())
sortiment()\artikel = "134542976579"
sortiment()\sortiment = "Gemüse"
AddElement(sortiment())
sortiment()\artikel = "7893412347"
sortiment()\sortiment = "Tiefkühlkost"
AddElement(sortiment())
sortiment()\artikel = "K7893412347"
sortiment()\sortiment = "Konserven"
AddElement(sortiment())
sortiment()\artikel = "1082485023"
sortiment()\sortiment = "Obst"
Procedure GetList()
Protected i.i, Position1.i, Position2.i, Found.b, Text1.s
count = 0
ForEach sortiment()
With sortiment()
Position = ListIndex( sortiment() ); aktuelle Position mergen
Text1 = sortiment()\sortiment; das aktuelle Sortiment holen
PushListPosition( sortiment() ); Listenposition mergen
ForEach sortiment(); Und die Liste nochmal durchlaufen
;==========================================================
; prüfen ob es das aktuelle Element aus der ersten Prüfung ist
; um zu vermeiden das man ein Element mit sichselbstvergleicht
Position2 = ListIndex( sortiment() )
If Position1 = Position2
Continue; Jo, isse das gleiche, also überspringen wir es
EndIf
;===========================================================
If \sortiment <> Text1; prüfen auf den Inhalt
; Flag setzen womit wir überprüfen, ob wir das Sortiment schon in der Liste haben
Found = #False
For i = 0 To count; Unser Array durchlaufen
If SortimentenListe( i ) = \sortiment
Found = #True; ist schon vorhanden
Break
EndIf
Next
If Found = #False; war nicht im Array
SortimentenListe( count ) = \sortiment; also abspeichern
count + 1
EndIf
EndIf
Next
PopListPosition( sortiment() );Listenzeiger wieder setzten
EndWith
Next
For i = 0 To count
Debug SortimentenListe( i )
Next
EndProcedure
Procedure FoundLast()
GetList()
Protected ii.i, countlist.i, i.i
countlist = ListSize( sortiment() ) - 1
For i = 0 To count
For ii = countlist To 0 Step -1
SelectElement( sortiment(), ii )
If sortiment()\sortiment = SortimentenListe( i )
; Hier stände dann der Code den du dann ausführen möchtest
; oder so in etwa
Debug "Letzter Eintrag des Sortimentes : " + sortiment()\sortiment + " an Listenposition " + Str( ii )
Debug "Artikel : " + sortiment()\artikel
Debug "------------------------------"
Break
EndIf
Next
Next
EndProcedure
FoundLast()