grazie per avermi aiutato innanzitutto.
Io intendevo un algoritmo a livello di massima perchè poi dovrei adattarlo a diversi linguaggi. Questa volta era per Visual Fox Pro.
La soluzione l'avevo realizzata ma, causa fame , non avevo effettuato un'attenta fase di debug. Se dovesse servire a qualcuno dei pochi utilizzatori di fox...

codice:
SELECT dorig
		LOCATE FOR dorig.xcd_xmatricole = this.Value 
		DO WHILE FOUND()
			IF cposripetute="" 	
			   cposripetute=ALLTRIM(STR(dorig.riga))
			else
			   cPosRipetute=cPosRipetute + ", " + ALLTRIM(STR(dorig.riga))
			ENDIF
			nrigheRipetute= nRigheRipetute + 1
			continue
		ENDDO
		IF nrigheripetute>0
			IF nRigheRipetute=1 
			   cTesto = "Ripetizione delle matricole alla riga "
			ELSE
			   cTesto = "Ripetizione delle matricole alle righe "
			ENDIF
		ENDIF
		cposripetute=cposripetute+"."
		xmessagebox(ctesto + cposripetute)