当前位置:  开发笔记 > 编程语言 > 正文

lazarus/pascal用当前日期写文件名

如何解决《lazarus/pascal用当前日期写文件名》经验,为你挑选了1个好方法。



1> Deltics..:

DateToStr()将返回根据区域设置格式化的日期.在您的情况下,这几乎肯定会返回导致问题(未找到路径)的文件夹/路径分隔符(/\).

即使您更改区域设置以避免使用此类字符,如果这些区域设置不"兼容",代码仍将在其他系统上失败.为避免这种情况,您需要确保文件名中日期的编码对此类潜在问题不敏感.

您可以在形成文件名后删除/替换任何此类字符,或者您可以以不会引入此类字符的方式显式编码日期,类似于:

var
  y, m, d: Word;

..

  DecodeDate(Date, y, m, d);
  dateStr := Format('%4d-%2d-%2d', [y, m, d]);

  // e.g. dateStr value for 31st Dec 2016 would be:  '2016-12-31'

然后,您可以根据需要通过串联将日期组件值合并到文件名中,或者直接在单个格式语句中合并:

 filename := Format('fattura minimi n.%s %4d-%2d-%2d.txt [n.text, y, m, d]);
 assignfile(f, filename);


@David - 你不能教*任何人**任何东西*如果他们不想学习你浪费你的时间尝试.请注意,这个答案不只是解决手头的问题.它解释了为什么存在问题以及解决方案背后的原因.A**Q + A**网站是关于提供有用的*答案*,帮助人们学习,而不是仅仅因为他们还没有我们其他人喜欢的技能而给人打包.帮助某人学习捕鱼并不需要在此期间拒绝帮助他们立即解决饥饿问题.
您可以使用`FormatDateTime()`而不是分别使用`DecodeDate()`和`Format()`:`dateStr:= FormatDateTime('yyyy" - "mm" - "dd',Date);`甚至类似的东西这个:`filename:= FormatDateTime('"fattura minimi n.'+ n.text +'"yyyy" - "mm" - "dd".txt"',Date);`
推荐阅读
罗文彬2502852027
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有