From b3f9bfb0742d5353ff4bae23890576a6cdd5724a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=C3=A1bio=20Nogueira?= Date: Thu, 16 Oct 2025 18:51:28 +0100 Subject: [PATCH] Fix dialog line when it's a number & Fix new line Fix dialog line when the dialog is just a number | Fix new line in dialog that happens on the same line --- ConvertSRTto3DASS/Converter.cs | 54 ++++++++++++++++------------------ 1 file changed, 25 insertions(+), 29 deletions(-) diff --git a/ConvertSRTto3DASS/Converter.cs b/ConvertSRTto3DASS/Converter.cs index b750628..f7a27d3 100644 --- a/ConvertSRTto3DASS/Converter.cs +++ b/ConvertSRTto3DASS/Converter.cs @@ -228,15 +228,12 @@ namespace ConvertSRTto3DASS var timestamp_start = ""; var timestamp_end = ""; - var subtitiles = ""; + var subtitles = ""; string srt = ReadTextSmart(file); - //Which dialog we are on (sanity check) - int i = 1; - - //Whether to extract the time stamp or not - int j = 0; //TODO: Change to a bool - + + int dialogNumber = 1; // Which dialog we are on + int dialogLine = 0; // Which line of the dialog block we are on int linecounter = 0; //Where we are in the .srt, meant for debugging foreach (string line in srt.Split('\n')) @@ -245,46 +242,45 @@ namespace ConvertSRTto3DASS //Empty line assumes that the next line with event number thus previous dialog is finished and can be saved if (line == "" | line == "\r") { - j = 0; - converted.Add(new Tuple(timestamp_start, timestamp_end, ChangeFormatting(subtitiles), "")); - subtitiles = ""; + dialogLine = 0; + converted.Add(new Tuple(timestamp_start, timestamp_end, ChangeFormatting(subtitles), "")); + subtitles = ""; continue; } - //Try to parse the event/dialog number - if (int.TryParse(line, out int k)) + + //Handle the first line + if (dialogLine == 0) { - //Event number doesn't match counted event number. Mismatch means something probably went wrong - if (k != i && j == 1) + //Check that the line is an actual number + if (int.TryParse(line, out int k) && k == dialogNumber) { - Console.Error.WriteLine("Something went wrong"); - Console.Error.WriteLine("Something wrong on line:" + linecounter); - System.Environment.Exit(-1); - } - else - { - i++; - j++; + dialogNumber++; + dialogLine++; continue; } + + Console.Error.WriteLine("Something went wrong"); + Console.Error.WriteLine("Something wrong on line:" + linecounter); + System.Environment.Exit(-1); } - //If it a timestamp is expected, extract it - if (j == 1) + //Timestamp extraction + if (dialogLine == 1) { timestamp_start = line.Substring(0, 12); timestamp_end = line.Substring(17, 12); - j++; + dialogLine++; } else { - if (subtitiles == "") + if (subtitles == "") { - subtitiles = line; - subtitiles = subtitiles.Replace("\\.r", ""); + subtitles = line; + subtitles = subtitles.Replace("\\.r", ""); } else { - subtitiles = subtitiles + "\\n" + line; + subtitles = subtitles + "\\N" + line; } } }