// If there is no dot at end of subtitle, add one. // Made by Bedazzle. 2012.07.15 program DotAtEnd; // --------------------------------------------- const SYMBOLTOADD = '.'; var n: Integer; i: Integer; txt: String; ExcludeChars: Set of Char; begin ExcludeChars := ['.', '?', '!', ',', ':', ';']; n := GetSubtitleCount; if n > 0 then for i := 0 to n-1 do begin txt := GetSubtitleText(i); if txt[Length(txt)] in ExcludeChars then else begin txt := txt + SYMBOLTOADD; SetSubtitleText(i, txt); end; end; end.
Страница 1 из 1
Добавление точек в конец субтитра
#1
Отправлено 16 Июль 2012 - 01:21
Если в конце субтитра не стоит один из указанных символов ( ! ? , . : ; ), то добавить в конец точку.
#3
Отправлено 17 Июль 2012 - 11:12
BedaZzle (15 Июль 2012 - 23:21) писал:
Если в конце субтитра не стоит один из указанных символов ( ! ? , . : ; ), то добавить в конец точку.
Смотрю, ты все ещё пишешь. И откуда только идеи берутся? Я бы никогда не додумался, что кому-то нужно добавлять точку к хвосту титра...
Укороченная версия, без лишних проверок, должна работать чуть шустрее:
program DotAtEnd; // --------------------------------------------- var n, i: Integer; txt: String; ExcludeChars: Set of Char; begin ExcludeChars := ['.', '?', '!', ',', ':', ';', '…']; n := GetSubtitleCount-1; for i := 0 to n do begin txt := GetSubtitleText(i); if not (txt[Length(txt)] in ExcludeChars) then SetSubtitleText(i, txt + '.'); end; end.
Ну и с точки зрения практического применения... стоило бы, наверное, добавить проверку первой буквы след. титра: если она заглавная, дописывать точку, если прописная - троеточие. Хотя, конечно, количество потенциальных пользователей скрипта это никак не изменит.
Страница 1 из 1