Русские субтитры: Добавление точек в конец субтитра - Русские субтитры

Перейти к содержимому

Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

Добавление точек в конец субтитра

#1 Пользователь офлайн   BedaZzle Иконка

  • Иконка
  • Отправить ЛС
  • Группа: Admin
  • Сообщений: 2 991
  • Регистрация: 22 Октябрь 02
  • Страна:
  • Прислал(a) субтитров: 96
  • Своих переводов: 16

Отправлено 16 Июль 2012 - 01:21

Если в конце субтитра не стоит один из указанных символов ( ! ? , . : ; ), то добавить в конец точку.

// 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.

0

#2 Пользователь офлайн   judicator Иконка

  • Иконка
  • Отправить ЛС
  • Группа: Members
  • Сообщений: 6
  • Регистрация: 14 Июнь 12
  • Страна:

Отправлено 16 Июль 2012 - 02:37

Я думаю можно ещё многоточие к этому списку добавить. Ещё раз больше спасибо вам за скрипт!
0

#3 Пользователь офлайн   НуПогоди Иконка

  • Иконка
  • Отправить ЛС
  • Группа: Избранные
  • Сообщений: 832
  • Регистрация: 31 Июль 06
  • Страна:
  • Прислал(a) субтитров: 45
  • Своих переводов: 19

Отправлено 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.

Ну и с точки зрения практического применения... стоило бы, наверное, добавить проверку первой буквы след. титра: если она заглавная, дописывать точку, если прописная - троеточие. Хотя, конечно, количество потенциальных пользователей скрипта это никак не изменит.
0

#4 Пользователь офлайн   BedaZzle Иконка

  • Иконка
  • Отправить ЛС
  • Группа: Admin
  • Сообщений: 2 991
  • Регистрация: 22 Октябрь 02
  • Страна:
  • Прислал(a) субтитров: 96
  • Своих переводов: 16

Отправлено 17 Июль 2012 - 15:00

Просмотр сообщенияНуПогоди (17 Июль 2012 - 10:12) писал:

Смотрю, ты все ещё пишешь. И откуда только идеи берутся?


Это под конкретную просьбу на письмо в личке ответ.
Так что идея не моя, только рубанком поработал.
0

Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему