呵呵,这个问题用VB、VC……甚至早期的Basic、Dbase等任何编程语言都可以写,不一定要用VFP。
如果非要用VFP的话,可以用表,也可以用数组,以下的思路是用表把从1到M的编号按顺序存入表中,然后每隔N个记录下来,并删除表中的记录,不断循环,直到表中无记录(即所有编号均已取出)为止。
CREATE TABLE NOMBER FieldName1 n,8,0 &&设一个只有一个字段的表
Accept lnM,lnN &&接收数据
lcList=’排序顺序是:’ &&用字符变量保存抽出的编号顺序
lcI=lcM
USE NOMBER EXCLUSIV
DO WHILE lcI>0
APPEND BLANK
lcI=LcI-1
ENDDO
REPLACE ALL FieldName1 WITH RECNO()
GO TOP
DO WHIL ERECCOUNT() >0
LnJ= lnN
DO WHILE LnJ>=0
IF LnJ=0
LcList= lcList+ALLTRIM(STR(FieldName1,8,0))+’/’&&保存抽出的编号
DELECT &&删除已抽出的记录
PACK
ELSE
SKIP
IF EOF()
GO TOP
ENDIF
ENDIF
LnJ= LnJ-1
ENDDO
ENDDO
? lcList
以上代码未经验证,仅供参考。
[此贴子已经被作者于2007-6-17 15:22:23编辑过]