foxpro 部分命令和函数的使用方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
必须有所知,否则不如死。——罗曼·罗兰
FOXPRO 部分命令和函数的使用方法
1. 把数据库文件转成文本文件:
设 A.dbf 为数据库文件,B.txt 为文本文件
use A
copy to B.txt type SDF
2. 把文本文件添加到数据库文件的末尾(如新建数据库文件是空文件,则把文本文件转成数据库文件:
设 A.TXT 为文本文件, B.dbf 为数据库文件
use B
append from A.TXT type SDF
3. 在字段中查找字符串(也可在备注字段中查找):
disp for "search text" $fieldname (显示含有字符串search text的filename字段的内容)
如:disp lastname, preference for "comedy" $preference
(显示的字段为lastname和preference)
4. 用记录指针号代替编号字段的内容
设编号字段名为 gen (必须是N型)
repl all gen with recno()
5. 统计并显示某字段中含有某字符串的数量:
设 title为字段名,f 为字符串,x 为内存变量
acce "请输入 :"to f
count for f $title to x
? "篇名中含"",f,""的文章一共有",x,"篇。"
6. 把数据库文件的结构转成文本文件A.txt (以便用word打印):
设数据库文件为 form.dbf
use form
list structure to A.txt
7. 删除某记录以后的所有记录
use (filename)
go n ( n 为某记录的记录号)
skip
delete rest
use
最后用pack命令物理删除.
8. 删除重复记录
设有字段 english, chinese
go top
store english to e
store chinese to c
set filter to english=e and chinese=c (筛选重复记录)
go top
skip
delete rest
set filter to
9. Returns a character type date from a date expression.
Syntax
DTOC(
Returns Character
Remarks
DTOC( ) returns a character string corresponding to the date expression
DTOC( ) Example
STORE CTOD('10/31/92') TO thisdate
? DTOC(thisdate)
STORE DTOC({10/31/92}+90) TO expiredate
? 'Your 90-day warranty expires', expiredate
? DTOC({10/31/92},1)
10. 把日期型内容转为字符型内容
DTOS(date()) 把目前日期转为字符
DTOS(登录日期) 把日期型字段"登录日期"转为字符型
11. 翻译字段内容
把字符字段中的"1900"转变为"2000"
repl jieyueriqi with chrtran(jieyueriqi,"1900","2000")
显示翻译内容
? chrtran(jieyueriqi,"1900","2000")
12. 把一个字段中的字符串转换(翻译)成另一个字符串:
设字段名为source
repl all source with strtran (source, "1900","2000")
13. 浏览 .dbf文件但使其无法被修改或删除:
brow noedit 或 change noedit
brow nomodify nodelete
14. 在sentence字段中统计英语词的数量:
do while .not. eof()
store occurs (" ", alltrim(sentence) to n1
store occurs (" ", alltrim(sentence2) to n2
store occurs (" ", alltrim(sentence3) to n3
n=n1+n2+n3
repl zishu with n
skip
enddo
15. 建立复合型索引:
必须有所知,否则不如死。——罗曼·罗兰
use form
index on zishu tag zishu (根据zishu字段建立索引)
如果按zishu排序,命令是:
set order to tag zishu
取消该排序的命令是:
set order to
16. 逐条显示备注字段(当然也可以显示其他字段)内容:
use &
go top
do while .not. eof()
set memowidth to 60
disp notes (显示notes字段内容)
?
@ 20,2 prompt 'Next sentence '
@ 20,18 prompt 'Previous sentence '
@ 20,40 prompt 'Stop '
menu to w
do case
case=1
skip
case=2
skip-1
case=3
go bottom
skip
endcase
enddo
17. 把 memo字段内容按记录逐条添加到文本文件的尾部:
use word.dbf
go top
do while .not. eof()
copy memo notes to test.txt additive
skip
enddo
18. 利用宏代换打开.dbf文件:
accept 'Please type a file name: ' to t
use &T
19. empty () 函数的用法:
if empty (no) (如果no字段内容为空)
append from &T type sdf field temp (把文本文件转为.dfb文件)
20. 在没一个字段内容的末尾加上一个空格:
设sentence为一字符型字段
repl all sentence with sentence +" "
21. 如果一个字段内容长度已满(如设定最长值为255),在另一个字段long中输入"T":
repl all long with "T" for len(sentence)=254
22. 过滤数据库,只显示满足条件的记录(如字段内容长度已有或超过255英文字符)
set filter to long="T" (参考21题)
23. 打开数据库文件,只允许对某一字段(如title)进行操作:
brow free title
24. 统计sentence字段中的空格数(可用来统计该字段中英文词数):
do while .not. eof()
store occurs (" ", alltrim(sentence)) to no
repl zishu with n && repl zishu with n+1 统计字段中的英文词数
skip
enddo
25. 显示/返回去掉左空格的数值型数字:ltrim()
? "Sentence", ltrim(str(no)), "with", ltrim(stri(zishu)), "words"
效果如:Sentence 5 with 20 words.
26. 显示/返回去掉右空格的字符型内容:rtrim()
? rtrim(title)
27. loop 转到do while 语句
28. 退出循环: exit
29. 把sentence字段内容全部转化为小写字母,再显示:
? lower (sentence)
同样,把sentence字段内容全部转化为大写字母,再显示:
? upper (sentence)
30. 在备注字段sentence中加空行:
repl all sentence with sentence + chr(13)+chr(13) && chr(13)为回车符)
31. 《中国翻译》期刊增添目录数据的方法
(1) 从《中国翻译》网()下载每一期的目录
(2) 用word编辑目录内容,达到如下效果:
第一行为类别 译学研究
第二行为标题 翻译研究与意识形态:拓展跨文化对话的空间
第三行为作者 孙艺风
第四行
为来源 2003-5-4
然后用寻找替换法达到如下效果(即每一条为一行,各项之间是##):
译学研究##翻译研究与意识形态:拓展跨文化对话的空间##孙艺风##2003-5-4
(3) 把该文件存为纯文本文件,文件名为mulu.txt,存入index文件夹内。
(4) 用foxpro打开index.dbf文件,做以下工作:
use index
必须有所知,否则不如死。——罗曼·罗兰
modi stru 添加新字段a和b,作为第一和第二个字段,字符,长度到底(254)
append from mulu.txt type sdf
repl all text with alltrim(a)+alltrim(b) (把字段a和b的内容复制到备注字段text内)
set filt to not empty(text) (只对新增添的记录做加工)
repl all text with strtran(text,'##',chr(13) (把一条内容化为4行)
repl all 类别 with mline(text,1) (把text的第一行内容复制到"类别"字段)
repl all title with mline(text,2) (把text的第二行内容复制到"title"字段)
repl all author with mline(text,3) (把text的第三行内容复制到"author"字段)
repl all source with mline(text,4) (把text的第四行内容复制到"source"字段)
set filt to (取消过滤,恢复对整个数据库的操作)
(5) 逐条检查输入信息,作必要修改。
(6) repl all text with '' (清空text内容)
(7) modi stru, 删除a和b两个字段。
32. 把备注字段某一行的内容复制到字符字段:
设text为备注字段,kind为字符字段
repl all kind with mline(text,1) (把text的第一行内容复制到kind字段)
33. a
34. a
35. a
36. a
37. a
38. a
39. a
40. a
41. a
必须有所知,否则不如死。——罗曼·罗兰