Aber schon extremes Glück, da eine DS als 1 Feld und der Key durchaus mehr als 1 Feld haben kann.
Bei einem verkürzten Key (Bespiel Firma(1), Werk(3), Teil(19), DS(23)) wird nur über den 1. Schlüssel gelöscht. Das muss dann nicht der gewünschte Satz sein.

Aber warum so kompliziert?
Ein "Delete (Key) File" muss über den Index den Satz erneut suchen.
Da du jedoch den Satz per "Chain (Key) FileP" im Zugriff hast, reicht ein simpler "Delete File", da dieser den aktuellen Satz löscht. Dies ist besonders bei nicht unique Keys ganz schön hilfreich und auch bei SQL gibt es den "delete ... where current of ...".

Bei mehreren 1000 Durchläufen kann man da echt Zeit einsparen.