开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 152|回复: 3
收起左侧

[已解决] 2份字幕合并成一份字幕,时间轴调整

 关闭 [复制链接]
结帖率:38% (6/16)
发表于 2024-12-10 22:39:22 | 显示全部楼层 |阅读模式   福建省福州市
50精币
例如A字幕
1
00:00:00,120 --> 00:00:02,480
聊天群之类神功众多,但人力有限

2
00:00:02,840 --> 00:00:04,440
几人又无法全部修炼

3
00:00:04,800 --> 00:00:07,720
他们都只是选取了其中的一部分进行修炼


B字幕

1
00:00:00,100 --> 00:00:01,860
这是卖出那一部分换来的资源

2
00:00:02,340 --> 00:00:04,140
逐鹿书院院长拿出了一件宝具

3
00:00:04,460 --> 00:00:06,180
这宝具拥有储物的功能


A+B合并,取A字幕最后时间00:00:07,720+500
1
00:00:00,120 --> 00:00:02,479
聊天群之类神功众多,但人力有限

2
00:00:02,840 --> 00:00:04,439
几人又无法全部修炼

3
00:00:04,800 --> 00:00:07,719
他们都只是选取了其中的一部分进行修炼

4
00:00:08,319 --> 00:00:10,078
这是卖出那一部分换来的资源

5
00:00:10,559 --> 00:00:12,358
逐鹿书院院长拿出了一件宝具

6
00:00:12,679 --> 00:00:14,398
这宝具拥有储物的功能


最佳答案

查看完整内容

[e=0].版本 2 .程序集 窗口程序集_启动窗口 .子程序 _按钮1_被单击 .局部变量 A字幕文件路径, 文本型 .局部变量 B字幕文件路径, 文本型 .局部变量 合并后字幕文件路径, 文本型 .局部变量 A字幕内容, 文本型, , "0" .局部变量 B字幕内容, 文本型, , "0" .局部变量 合并后字幕内容, 文本型 .局部变量 A最后时间, 文本型 .局部变量 时间偏移量, 整数型 .局部变量 序号, 整数型 .局部变量 i, 整数型 A字幕文件路径 = “A字幕文件路 ...

回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值无答案申请取消悬赏投诉有答案未采纳为最佳
结帖率:50% (3/6)

签到天数: 13 天

发表于 2024-12-10 22:39:23 | 显示全部楼层   云南省西双版纳傣族自治州
  
窗口程序集名保 留  保 留备 注
窗口程序集_启动窗口   
子程序名返回值类型公开备 注
_按钮1_被单击  
变量名类 型静态数组备 注
A字幕文件路径文本型 
B字幕文件路径文本型 
合并后字幕文件路径文本型 
A字幕内容文本型0
B字幕内容文本型0
合并后字幕内容文本型 
A最后时间文本型 
时间偏移量整数型 
序号整数型 
i整数型 
A字幕文件路径 = “A字幕文件路径.txt”  ' 这里替换为实际的A字幕文件路径
B字幕文件路径 = “B字幕文件路径.txt”  ' 这里替换为实际的B字幕文件路径
合并后字幕文件路径 = “合并后字幕文件路径.txt”  ' 这里替换为要保存的合并后字幕文件路径
时间偏移量 = 500  ' 时间偏移量,单位毫秒,按示例设定为500
' 读取A字幕文件内容
A字幕内容 = 分割文本 (读入文件 (A字幕文件路径), #换行符, )
' 读取B字幕文件内容
B字幕内容 = 分割文本 (读入文件 (B字幕文件路径), #换行符, )
' 获取A字幕最后一条的时间轴信息
A最后时间 = 取文本中间 (A字幕内容 [取数组成员数 (A字幕内容)], 13, 12)  ' 假设时间轴格式固定,提取时间部分
序号 = 1
' 先添加A字幕内容,调整时间轴结尾时间(减1毫秒来符合示例逻辑)
计次循环首 (取数组成员数 (A字幕内容), i)
如果 (寻找文本 (A字幕内容 [i], “-->, 真) > 0)
合并后字幕内容 = 合并后字幕内容 + 到文本 (序号)#换行符文本替换 (A字幕内容 [i], 取文本中间 (A字幕内容 [i], 13, 12), 时间格式转换 (时间值转换 (取文本中间 (A字幕内容 [i], 13, 12)) - 1),, 1)#换行符
合并后字幕内容 = 合并后字幕内容 + A字幕内容 [i]#换行符
序号 = 序号 + 1
计次循环尾 ()
' 接着添加B字幕内容,根据A最后时间和偏移量来调整时间轴
计次循环首 (取数组成员数 (B字幕内容), i)
如果 (寻找文本 (B字幕内容 [i], “-->, 真) > 0)
合并后字幕内容 = 合并后字幕内容 + 到文本 (序号)#换行符时间轴调整 (B字幕内容 [i], A最后时间, 时间偏移量)#换行符
序号 = 序号 + 1
合并后字幕内容 = 合并后字幕内容 + B字幕内容 [i]#换行符

计次循环尾 ()
' 保存合并后字幕文件
写到文件 (合并后字幕文件路径, 到字节集 (合并后字幕内容))
信息框 (“合并并修改时间轴完成!”, 0, )
子程序名返回值类型公开备 注
时间格式转换文本型 
参数名类 型参考可空数组备 注
时间值小数型
变量名类 型静态数组备 注
小时整数型 
分钟整数型 
整数型 
毫秒整数型 
小时 = 取整 (时间值 ÷ 3600)
分钟 = 取整 ( (时间值 - 小时 × 3600) ÷ 60)
秒 = 取整 (时间值 - 小时 × 3600 - 分钟 × 60)
毫秒 = 取整 ( (时间值 - 取整 (时间值)) × 1000)
返回 格式化文本 (“%02d:%02d:%02d,%03d”, 小时, 分钟, 秒, 毫秒)
子程序名返回值类型公开备 注
时间值转换小数型 
参数名类 型参考可空数组备 注
时间文本文本型
变量名类 型静态数组备 注
小时整数型 
分钟整数型 
整数型 
毫秒整数型 
小时 = 到整数 (取文本中间 (时间文本, 1, 2))
分钟 = 到整数 (取文本中间 (时间文本, 4, 2))
秒 = 到整数 (取文本中间 (时间文本, 7, 2))
毫秒 = 到整数 (取文本中间 (时间文本, 10, 3))
返回 小时 × 3600 + 分钟 × 60 + 秒 + 毫秒 ÷ 1000
子程序名返回值类型公开备 注
时间轴调整文本型 
参数名类 型参考可空数组备 注
原时间轴行文本型
A最后时间文本文本型
偏移量整数型
变量名类 型静态数组备 注
原起始时间文本型 
原结束时间文本型 
新起始时间小数型 
新结束时间小数型 
原起始时间 = 取文本中间 (原时间轴行, 1, 12)
原结束时间 = 取文本中间 (原时间轴行, 17, 12)
新起始时间 = 时间值转换 (原起始时间)时间值转换 (A最后时间文本) + 偏移量 ÷ 1000
新结束时间 = 时间值转换 (原结束时间)时间值转换 (A最后时间文本) + 偏移量 ÷ 1000
返回 取文本左边 (原时间轴行, 1)时间格式转换 (新起始时间)“ --> ”时间格式转换 (新结束时间)

回复

使用道具 举报

结帖率:50% (3/6)

签到天数: 13 天

发表于 2024-12-11 09:47:28 | 显示全部楼层   云南省西双版纳傣族自治州
  
窗口程序集名保 留  保 留备 注
窗口程序集_启动窗口   
子程序名返回值类型公开备 注
_按钮1_被单击  
变量名类 型静态数组备 注
A字幕文件路径文本型 
B字幕文件路径文本型 
合并后字幕文件路径文本型 
A字幕内容文本型0
B字幕内容文本型0
合并后字幕内容文本型 
A最后时间文本型 
时间偏移量整数型 
序号整数型 
i整数型 
A字幕文件路径 = “A字幕文件路径.txt”  ' 这里替换为实际的A字幕文件路径
B字幕文件路径 = “B字幕文件路径.txt”  ' 这里替换为实际的B字幕文件路径
合并后字幕文件路径 = “合并后字幕文件路径.txt”  ' 这里替换为要保存的合并后字幕文件路径
时间偏移量 = 500  ' 时间偏移量,单位毫秒,按示例设定为500
' 读取A字幕文件内容
A字幕内容 = 分割文本 (读入文件 (A字幕文件路径), #换行符, )
' 读取B字幕文件内容
B字幕内容 = 分割文本 (读入文件 (B字幕文件路径), #换行符, )
' 获取A字幕最后一条的时间轴信息
A最后时间 = 取文本中间 (A字幕内容 [取数组成员数 (A字幕内容)], 13, 12)  ' 假设时间轴格式固定,提取时间部分
序号 = 1
' 先添加A字幕内容,调整时间轴结尾时间(减1毫秒来符合示例逻辑)
计次循环首 (取数组成员数 (A字幕内容), i)
如果 (寻找文本 (A字幕内容 [i], “-->, 真) > 0)
合并后字幕内容 = 合并后字幕内容 + 到文本 (序号)#换行符文本替换 (A字幕内容 [i], 取文本中间 (A字幕内容 [i], 13, 12), 时间格式转换 (时间值转换 (取文本中间 (A字幕内容 [i], 13, 12)) - 1),, 1)#换行符
合并后字幕内容 = 合并后字幕内容 + A字幕内容 [i]#换行符
序号 = 序号 + 1
计次循环尾 ()
' 接着添加B字幕内容,根据A最后时间和偏移量来调整时间轴
计次循环首 (取数组成员数 (B字幕内容), i)
如果 (寻找文本 (B字幕内容 [i], “-->, 真) > 0)
合并后字幕内容 = 合并后字幕内容 + 到文本 (序号)#换行符时间轴调整 (B字幕内容 [i], A最后时间, 时间偏移量)#换行符
序号 = 序号 + 1
合并后字幕内容 = 合并后字幕内容 + B字幕内容 [i]#换行符

计次循环尾 ()
' 保存合并后字幕文件
写到文件 (合并后字幕文件路径, 到字节集 (合并后字幕内容))
信息框 (“合并并修改时间轴完成!”, 0, )
子程序名返回值类型公开备 注
时间格式转换文本型 
参数名类 型参考可空数组备 注
时间值小数型
变量名类 型静态数组备 注
小时整数型 
分钟整数型 
整数型 
毫秒整数型 
小时 = 取整 (时间值 ÷ 3600)
分钟 = 取整 ( (时间值 - 小时 × 3600) ÷ 60)
秒 = 取整 (时间值 - 小时 × 3600 - 分钟 × 60)
毫秒 = 取整 ( (时间值 - 取整 (时间值)) × 1000)
返回 格式化文本 (“%02d:%02d:%02d,%03d”, 小时, 分钟, 秒, 毫秒)
子程序名返回值类型公开备 注
时间值转换小数型 
参数名类 型参考可空数组备 注
时间文本文本型
变量名类 型静态数组备 注
小时整数型 
分钟整数型 
整数型 
毫秒整数型 
小时 = 到整数 (取文本中间 (时间文本, 1, 2))
分钟 = 到整数 (取文本中间 (时间文本, 4, 2))
秒 = 到整数 (取文本中间 (时间文本, 7, 2))
毫秒 = 到整数 (取文本中间 (时间文本, 10, 3))
返回 小时 × 3600 + 分钟 × 60 + 秒 + 毫秒 ÷ 1000
子程序名返回值类型公开备 注
时间轴调整文本型 
参数名类 型参考可空数组备 注
原时间轴行文本型
A最后时间文本文本型
偏移量整数型
变量名类 型静态数组备 注
原起始时间文本型 
原结束时间文本型 
新起始时间小数型 
新结束时间小数型 
原起始时间 = 取文本中间 (原时间轴行, 1, 12)
原结束时间 = 取文本中间 (原时间轴行, 17, 12)
新起始时间 = 时间值转换 (原起始时间)时间值转换 (A最后时间文本) + 偏移量 ÷ 1000
新结束时间 = 时间值转换 (原结束时间)时间值转换 (A最后时间文本) + 偏移量 ÷ 1000
返回 取文本左边 (原时间轴行, 1)时间格式转换 (新起始时间)“ --> ”时间格式转换 (新结束时间)

回复

使用道具 举报

结帖率:38% (6/16)

签到天数: 10 天

 楼主| 发表于 2024-12-12 00:13:14 | 显示全部楼层   福建省福州市
lxh1230 发表于 2024-12-11 09:47
[e=0].版本 2

.程序集 窗口程序集_启动窗口

只能说大佬牛逼
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表