将从.srt文件中读取时间字符串并更改它的函数

时间:2016-01-17 03:43:22

标签: c++

我正在开发一个非常简单的程序,该程序将接收文件名和一个数字(您希望从该文件中延迟字幕的数量),然后将该文件另存为延迟时间的另一个文件。我的问题是如何编写一个可以改变时间的函数。

让我们说文件看起来像那样:

1
00:00:49,100 - > 00:00:52515个
- 一切都到位了吗? - 你不应该替换我。

2
00:00:52,770 - > 00:00:55391个
我知道,但我想接受你的转变。

3
00:00:55,940 - > 00:00:58312个
你喜欢他,不喜欢他吗?你喜欢看他

4
00:00:58,568 - > 00:01:01569
- 不要嘲笑! - 我们要杀了他。理解?

5
00:01:01,822 - > 00:01:04313
Morpheus相信,他是The One。

......等等。那怎么可能呢?

1 个答案:

答案 0 :(得分:0)

如果涉及c#我会开始制作两个 srtFilesrtDialogue

抓取 SharpDevelop 的副本,google for' 粗体字 c#'你应该有一些很好的分拆。

  

srtFile

将包含字段

    使用srtDialogue类型
  • 数组列表,文件中的所有对话框分别为srtDialogue 物体
  • 字符串,其中包含已处理的文件名

将包含方法

  • 加载文件并将其内容转换为srtDialogue 对象
  • 保存文件 - 这里加载你正在谈论的循环
  • 要转移时间,这里可能需要/有帮助的重载方法

以及您将看到的任何缺失或必要的内容

  

srtDialogue

将包含字段

  • int 具有对话次数的整数
  • 时间戳开始时间戳
  • 时间戳结束时间戳
  • 数组列表 类型 字符串,包含单个对话框的所有文字行
  • 字符串,其中包含来自srt
  • 的未处理对话框

将包含方法

  • 解析对话框阻止文字到数字时间戳,并将字符串的一部分分配给srtDialogue
  • 中的字段
  • srtDialogue字段放入可通过srtFile
  • 中的保存方法接收的文本中
  • 要改变srtDialogue本身的时间,这里可能需要一些重载方法

以及您将看到的任何缺失或必要的内容

这就是它,休息取决于你!