以下是引用吹水佬在2015-5-25 11:55:27的发言:
就是这段代码
dime a列[12]
for i = 1 to 12
a列 = eval("列"+tran(i))
endfor
asort(a列)
for i = 1 to 11
if a列 == a列
exit
endif
endfor
rele a列
if i < 12
** 有重复
endif
先生我将您给的代码插入我原来的代码行(两行“88888888888888”之间部分),运行后还有重复的记录,是否是我插入的位置不对(插入后的代码下附:)
CLEAR
CLOSE
all
SET SAFETY OFF
CREATE TABLE 横向搜索表(A1 N(20))
FOR X = 2 TO
12
ALTER table 横向搜索表 ADD ('A'+TRANSFORM(X)) N(20)
ENDFOR
*----------------------
USE 原表
HS=RECCOUNT()
Dimension YB(HS)
select * from 原表 into array YB
*------------------------------------
USE 横向搜索表
FOR H1=1 TO
hs
列2=Yb(h1)
FOR H2=1 TO hs
列3=Yb(h2)
FOR H3=1 TO hs
列5=Yb(h3)
FOR H4=1 TO
hs
列6=Yb(h4)
FOR H5=1 TO
HS
列7=Yb(h5)
FOR H6=1 TO hs
列9=Yb(h6)
FOR H7=1 TO hs
列10=Yb(h7)
FOR H8=1 TO
hs
列11=Yb(h8)
FOR H9=1 TO
HS
列12=Yb(h9)
*---------
列1 = 26-列2-列3
列4 = 26-列5-列6-列7
列8 = 26-列9-列10-列11-列12
*-----------
IF
0>= 列1 OR
列1>=13
OR
0>=列4 OR 列4>=13
OR 0>=列8 OR 列8>=13
LOOP
ENDIF
*888888888888888888888888888888888888888-----------------以下“ 888888888”之间的几行代码是检验列1——列12的12个数中有否重复,若有重复则返回,若无重复则写入到“横向搜索表”
dime a列[12]
for i = 1 to 12
a列[i] = eval("列"+tran(i))
endfor
asort(a列)
for i = 1 to 11
if a列[i] == a列[i+1]
exit
endif
endfor
rele a列
if i < 12
** 有重复
endif
*888888888888888888888888888888888888888
APPEND BLANK
REPLACE
A1 WITH
列1
REPLACE
A2 WITH
列2
REPLACE
A3 WITH
列3
REPLACE
A4 WITH
列4
REPLACE
A5 WITH
列5
REPLACE
A6 WITH
列6
REPLACE
A7 WITH
列7
REPLACE
A8 WITH
列8
REPLACE
A9 WITH
列9
REPLACE
A10 WITH
列10
REPLACE
A11 WITH
列11
REPLACE
A12 WITH
列12
*^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ENDFOR
ENDFOR
ENDFOR
ENDFOR
ENDFOR
ENDFOR
ENDFOR
ENDFOR
ENDFOR
* ##################################################################
MESSAGEBOX('本 次 运 行 结 束 !!',64,'信息提示')
DELETE FILE *.BAK
QUIT