巧用SUBSTR()和REPLACE恢复库内错位数据
程序清单;
@O,O CLEAR
USE opsysdbf
STORE“” TO ziduan1,ziduan
gg=949
DO WHILE gg<954
@10,10 SAY“NO:”
?? gg
GO gg
namel=SUBSTR (字段n,25,24)
name2=SUBSTR(字段n,49,60)
nameN=SUBSTR(字段n,8,21)+字段n
nameNN=SUBSTR(字段n,1,24)
gg=gg+1
ziduanl=字段1:……ziduan=字段N
go gg
REPLACE 字段1 WITH namel, 字段2:WITH name2……
REPLACE 字段N WITH nameN,字段N WITH nameNN
REPLACE:字段N WITH ziduan1,字段N WITH ziduan
STORE “” TO ziduan1,ziduan
gg=gg+1
ENDDO
CLOSE DATABASES
RETURN
注意:1) 如果企图用REPLACE命令填充一个记录的数据时,首先应将该记录置空,否则无法使数据填入; 2)在用SUBSTR函数取子字符串时,字符串的起始位置和长度一定要计算准确,否则会出现新的错位记录;3)循环时请将最后一错位记录保留,否则会将正常记录也置空。