注册 登录
编程论坛 VFP论坛

求教:关于VFP生成以当前系统时间命名的文件

雨花石568 发布于 2022-12-24 17:21, 1279 次点击
我有一个名为xmk的表文件,还有一个表单,表单中有一个按钮,每次点击按钮都会生成一个以“姓名库+系统时间”为名的excel工作薄。
我写的按钮代码为

SET CENTURY on
SET DATE LONG
filename='姓名库'+DTOC(DATE())+STR(HOUR(DATETIME()),2)+'时'+STR(MINUTE(DATETIME()),2)+'分'+STR(SEC(DATETIME()),2)+'秒'
USE .\sysdbf\xmk.dbf
COPY To &filename TYPE xl5
USE

这个代码可以运行成功。但我想知道除此之外,还可以怎么写代码实现此功能。
求教大咖
10 回复
#2
sdta2022-12-24 17:32
这样行吗
?TTOC(DATETIME(),1)
#3
雨花石5682022-12-24 17:36
回复 2楼 sdta
我想得到的文件名称为“姓名库2022年12月24日17时35分26秒”这样子的,不想用纯数字表示系统时间。
#4
csyx2022-12-24 18:43
?Transform(ttoc(Datetime(),1),'@R 9999-99-99 99时99分99秒')
#5
sdta2022-12-24 18:52
?Transform(ttoc(Datetime(),1),'@R 9999年99月99日99时99分99') + "秒"
#6
雨花石5682022-12-24 19:15
回复 5楼 sdta
向前辈咨询一个问题。为什么我写的那个代码,运行时偶尔会出现错误提示“命令中含有不能识别的短语或关键字”?
#7
sdta2022-12-24 20:29
当秒数为0秒时,文件名中会出现空格,所以会出现楼主所说的错误提示。
#8
吹水佬2022-12-24 23:43
设置日期时间格式,如:
SET HOURS TO 24
SET DATE TO ANSI
SET CENTURY ON
SET MARK TO '-'
#9
pvm20002022-12-25 08:12
楼主一楼的写法就很稳
#10
csyx2022-12-25 12:12
1. 用 ttoc(Datetime(),1) 方式就不用考虑日期和时间格式的设置,它总是 yyyyMMddhhmmss 格式
2. 随意使用宏替换是一种非常不好的习惯,一楼代码中的 copy to ... 应该使用变量表达式
   COPY To (m.filename) TYPE xl5
   Windows 文件名允许其中包含空格,但如果使用宏替换,万一路径或文件名中出现空格,就会将替换后语句变成类似这样
   COPY To D:\aaa\bbb cc\xm20221225 121035  TYPE xl5     自然也就被 vfp 识别为含有不能识别的短语或关键字
   一定要用宏替换的话,也应在 &filename 两边加上双引号
#11
雨花石5682022-12-25 19:03
回复 10楼 csyx
感谢指出代码中的错误,谢谢
1