You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VB.NET如何转换SRT字幕格式、识别换行并写入文本文件

VB.NET 实现SRT字幕格式转换方案

实现逻辑说明

SRT字幕的标准结构为空行分隔每个独立字幕块,每个字幕块内固定结构为:序号行、时间轴行、1~N行字幕内容。核心处理逻辑就是先按空行拆分所有字幕块,再逐个块处理内部内容,多行文直接用<br />拼接即可。

完整实现代码

Imports System.IO
Imports System.Text

Public Class SrtProcessor
    Public Sub ConvertSrtToCustomFormat(inputPath As String, outputPath As String)
        ' 读取原始SRT文件内容,可根据实际情况调整编码
        Dim srtContent As String = File.ReadAllText(inputPath, Encoding.UTF8)
        
        ' 统一换行符格式,避免不同系统换行符差异导致分割错误
        srtContent = srtContent.Replace(vbCrLf, vbLf).Replace(vbCr, vbLf)
        
        ' 按两个连续换行分割所有独立字幕块,过滤空块
        Dim subtitleBlocks As String() = srtContent.Split({vbLf & vbLf}, StringSplitOptions.RemoveEmptyEntries)
        
        Dim outputLines As New List(Of String)
        
        For Each block In subtitleBlocks
            ' 拆分单个字幕块内的所有行,过滤无效空行
            Dim lines As String() = block.Split({vbLf}, StringSplitOptions.RemoveEmptyEntries)
            ' 过滤格式错误的无效字幕块
            If lines.Length < 3 Then Continue For
            
            ' 提取序号
            Dim index As String = lines(0).Trim()
            ' 拆分时间轴为开始、结束时间
            Dim timeParts As String() = lines(1).Split({" --> "}, StringSplitOptions.None)
            If timeParts.Length < 2 Then Continue For
            Dim startTime As String = timeParts(0).Trim()
            Dim endTime As String = timeParts(1).Trim()
            
            ' 处理多行字幕:取第三行及以后的所有内容,用 <br /> 拼接
            Dim contentLines As IEnumerable(Of String) = lines.Skip(2).Select(Function(l) l.Trim())
            Dim mergedContent As String = String.Join(" <br /> ", contentLines)
            
            ' 拼接为目标格式行
            Dim outputLine As String = $"{index} # {startTime} # {endTime} # {mergedContent}"
            outputLines.Add(outputLine)
        Next
        
        ' 写入输出文件
        File.WriteAllLines(outputPath, outputLines, Encoding.UTF8)
    End Sub
End Class

调用示例

Dim processor As New SrtProcessor()
' 替换为你自己的输入、输出文件路径
processor.ConvertSrtToCustomFormat("D:\test\input.srt", "D:\test\output.txt")

内容的提问来源于stack exchange,提问作者vahid Araghi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.14 20:15:03