Sometimes it is easy to remove cdx references from tables by program.
* nocdxref()
* this function deletes the cdxref from any dbf.
* usage: lresult = nocdxref('C:\TABLES\MYTABLE.DBF')
*
function nocdxref
parameters rdfile
private filehandle, cdxbyte
rdfile = alltrim(rdfile)
if len(rdfile)=0
return .f.
endif
filehandle=FOPEN(rdfile,12) && Open the file
if filehandle < 0
wait(rdfile+' NOT FOUND or IN USE')
return .f.
endif
=FSEEK(filehandle, 28,0) && Move pointer before 29th byte
cdxbyte = asc(fgets(filehandle,1)) && read byte 29
if cdxbyte % 2 = 1 && test if it has a cdx
cdxbyte = cdxbyte - 1 && if so change it
=FSEEK(filehandle, -1,1) && Move pointer before 29th byte again
=FWRITE(filehandle, chr(cdxbyte), 1) && write changed byte to dbfheader
endif
=FCLOSE(filehandle)
return .t.
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.