Servus,
da ich in meinem aktuellen Projekt einen RingBuffer gebraucht habe, habe ich fix diese UDF geschrieben. Ob es bereits sowas gibt weiß ich ehrlich gesagt nicht, ich habs einfach selber gemacht.
Damit kann man einen FIFO RingBuffer erzeugen welche den ältesten Wert überschreibt wenn man die Kapazität überschritten hat.
Vielleicht kann das ja auch jemand von euch gebrauchen. Ein Beispiel inklusive au3-Calltips für SciTE ist angehangen.
Funktionsliste RingBuffer.au3:
- _RingBuffer_Create($iCapacity)
- _RingBuffer_Destroy(ByRef $aRingBuffer)
- _RingBuffer_GetCapacity(ByRef $aRingBuffer)
- _RingBuffer_GetCount(ByRef $aRingBuffer)
- _RingBuffer_Add(ByRef $aRingBuffer, $vItem)
- _RingBuffer_Clear(ByRef $aRingBuffer)
- _RingBuffer_Remove(ByRef $aRingBuffer)
- _RingBuffer_GetOldest(ByRef $aRingBuffer)
- _RingBuffer_GetNewest(ByRef $aRingBuffer)
- _RingBuffer_GetAll(ByRef $aRingBuffer, $bNewestFirst = False)
Update 06.05.2019: _RingBuffer_Clear-Funktion hinzugefügt.
Bisherige Downloads (alte Versionen): 2