我在Delphi7中遇到了问题。我的应用程序根据一组命名规则创建mpg视频文件,例如:\000_A_Title_YYYY-MM-DD_HH-mm-ss_Index.mpg。
在这个文件名中,强制执行以下规则:
1. 000是视频序列。每当用户按停止时,它会递增。
2. A(或B、C、D)指定录制摄像机 - 因此视频文件与最多四个同时播放的视频流相关联。
3. Title是一个可变长度的字符串。在我的应用程序中,它不能包含下划线。
4. YYYY-MM-DD_HH-mm-ss是视频序列开始时间(而不是单个文件)。
5. Index是基于0的排序索引,每个视频序列都会递增1。也就是说,视频文件最长为15分钟,一旦达到这个时间,就会以相同的序列号但下一个索引启动新的视频文件。使用这个,在我们可以计算出文件的实际开始时间(文件名解码时间+15 x Index)。
使用这种方法,我的应用程序可以提取视频文件开始录制的时间。现在,我们有进一步的要求来处理任意命名的视频文件。我唯一确定的事情是在文件名中会有一个YYYY-MM-DD HH-mm-ss。
如何让用户指定导入文件的文件名约定?类似于正则表达式之类的东西吗?我知道命名方案必须遵循某种模式。
因此,如果用户在文本框中输入?_(Camera)_*_YYYY-MM-DD_HH-mm-ss_(Index).mpg,我该如何获取开始时间?有更好的解决方案吗?还是我们必须处理每一个可能性?(我知道这可能不是处理这个问题的最佳方法,但是我们无法改变这个问题-新的视频文件是由另一家公司录制的)。
在这个文件名中,强制执行以下规则:
1. 000是视频序列。每当用户按停止时,它会递增。
2. A(或B、C、D)指定录制摄像机 - 因此视频文件与最多四个同时播放的视频流相关联。
3. Title是一个可变长度的字符串。在我的应用程序中,它不能包含下划线。
4. YYYY-MM-DD_HH-mm-ss是视频序列开始时间(而不是单个文件)。
5. Index是基于0的排序索引,每个视频序列都会递增1。也就是说,视频文件最长为15分钟,一旦达到这个时间,就会以相同的序列号但下一个索引启动新的视频文件。使用这个,在我们可以计算出文件的实际开始时间(文件名解码时间+15 x Index)。
使用这种方法,我的应用程序可以提取视频文件开始录制的时间。现在,我们有进一步的要求来处理任意命名的视频文件。我唯一确定的事情是在文件名中会有一个YYYY-MM-DD HH-mm-ss。
如何让用户指定导入文件的文件名约定?类似于正则表达式之类的东西吗?我知道命名方案必须遵循某种模式。
因此,如果用户在文本框中输入?_(Camera)_*_YYYY-MM-DD_HH-mm-ss_(Index).mpg,我该如何获取开始时间?有更好的解决方案吗?还是我们必须处理每一个可能性?(我知道这可能不是处理这个问题的最佳方法,但是我们无法改变这个问题-新的视频文件是由另一家公司录制的)。