ConvertSrtInSsa.vbs - Конвертировать SRT в SAA
|
|
Andrey_A | Дата: Понедельник, 18.11.2013, 19:21 | Сообщение № 1 |
Генералиссимус
На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7191
Награды: 143
Репутация: 125
Аверин Андрей
|
Конвертировать открытый на редактирование файл субтитров SRT в SSA Используется скрипт Functions.vbs - Скрипт с различными Функциями, которые можно использовать в других скриптах
Доступно только для пользователей
|
|
| |
sexbeer | Дата: Понедельник, 18.11.2013, 19:55 | Сообщение № 2 |
Рядовой
На сайте с: 18.11.2013
Город: Омск
Сообщений: 9
|
Andrey_A, всё просто супер!!! очень оперативно! я вообще в этом ни бум-бум, преобразовывал сторонней программой, много лишних движений было, а сейчас всё на одной кнопке. только вот с кодировкой проблемы. при запуске скрипта всё меняет кроме знака градуса (E73░28'39,41''). выдает окошко как на картинке. жму ОК, файл сохраняется как положено, только вместо знака градуса дефис.
|
|
| |
Andrey_A | Дата: Понедельник, 18.11.2013, 19:57 | Сообщение № 3 |
Генералиссимус
На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7191
Награды: 143
Репутация: 125
Аверин Андрей
|
Я подправил 5 минут назад , версия1.1
вставил Код sTextSRT = Replace(sTextSRT, ChrW(9617),Chr(176)) ' замена символа градуса из Unicode в ANSI
Возьми заново
Цитата sexbeer ( ) я вообще в этом ни бум-бум
Я тоже
|
|
| |
sexbeer | Дата: Вторник, 19.11.2013, 15:05 | Сообщение № 4 |
Рядовой
На сайте с: 18.11.2013
Город: Омск
Сообщений: 9
|
Andrey_A, громаднейшее спасибо!!! всё работает!!! Добавлено (19.11.2013, 15:05) --------------------------------------------- Andrey_A, еще несколько желаний к вышепроделанному титаническому труду! если возможно, хотелось бы дополнить нулями градусы (до трех знаков) и секунды GPS (до двух знаков), а также убрать запятую между широтой и долготой и заменить запятую между сек и милисек на точку. то есть привести N55°00'0,30", E73°28'3,60" к виду N055°00'00.30" E073°28'03.60" (нули к минутам и миллисекундам добавляются автоматически).
и еще... вместо "N/A, N/A" прописать "{\c&BBBBBB}N000°00'00.00" E000°00'00.00"", а вместо "Date:" вставить "{\c&FFFFFF}". плюс заменил (выделил жирным) 8-ю строчку в ssa на "Style: Default,Codename Coder Free 4F,10,4366591,4366591,4366591,0,1,0,1,3,0,5,3,3,3,0,204". Конечный файл и исходник отправил на почту. Заранее благодарствую!
|
|
| |
Andrey_A | Дата: Вторник, 19.11.2013, 19:43 | Сообщение № 5 |
Генералиссимус
На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7191
Награды: 143
Репутация: 125
Аверин Андрей
|
Цитата sexbeer ( ) возможно, хотелось бы дополнить Опять же как и в прошлый раз необходимо выслать текущие файлы и как надо сделать - так быстрее воспринимается + любой сайт может искажать специфические символы. Как только вышлите сделаю
|
|
| |
sexbeer | Дата: Вторник, 19.11.2013, 20:12 | Сообщение № 6 |
Рядовой
На сайте с: 18.11.2013
Город: Омск
Сообщений: 9
|
Andrey_A, выслал на почту. изменил расширение файла на ass, начальную шапку в нем, внёс кое-какие изменения. архив Final.zip
|
|
| |
Andrey_A | Дата: Четверг, 21.11.2013, 14:38 | Сообщение № 7 |
Генералиссимус
На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7191
Награды: 143
Репутация: 125
Аверин Андрей
|
Конвертировать открытый на редактирование файл субтитров SRT в ASS Используется скрипт Functions.vbs - Скрипт с различными Функциями, которые можно использовать в других скриптах
Доступно только для пользователей
|
|
| |
sexbeer | Дата: Четверг, 21.11.2013, 15:49 | Сообщение № 8 |
Рядовой
На сайте с: 18.11.2013
Город: Омск
Сообщений: 9
|
Andrey_A, СПАСИБО!!! Сложно было реализовать? А то у меня еще кое-какая идея возникла в голове
|
|
| |
Andrey_A | Дата: Четверг, 21.11.2013, 15:51 | Сообщение № 9 |
Генералиссимус
На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7191
Награды: 143
Репутация: 125
Аверин Андрей
|
Цитата sexbeer ( ) Сложно было реализовать? Нет, просто делаю всё по очереди
Цитата sexbeer ( ) идея возникла Точное описание + файлы до и после ))
|
|
| |
sexbeer | Дата: Четверг, 21.11.2013, 18:00 | Сообщение № 10 |
Рядовой
На сайте с: 18.11.2013
Город: Омск
Сообщений: 9
|
Буду очень признателен! Файлы отправил на почту. В общем суть не меняется, кое-что добавляется к предыдущему. К координатам добавляется скорость (speed), высота (alt), и ускорение (G). В них так же нужно заменить запятые, отделяющие дробные части от целых, на точки и дополнить нулями: скорость и высоту до вида 000.0, ускорение не надо. speed: N/A преобразовать в SPEED 000.0KMH, alt: N/A в ALT 000.0M{\r[Default]}{\c&FFFFFF}, km/h в KMH. Так же когда скорость больше или равна 60,0 кмч, SPEED {\c&00ff00} меняется на SPEED {\c&0000ff}. Также убрал пробел между GT-i9260 и {\c&FFFFFF}. И немного изменений в шапке. Много пробелов и строка \N\N\N\N\N пусть не смущают, так надо:) это для позиционирования субтитров на экране, их количество всё точно определено. В общем в файлах понятнее будет смотреть, там видно где какие запятые пропадают, двоеточия и пробелы. Добавлено (21.11.2013, 17:38) --------------------------------------------- Andrey_A, кстати небольшой косяк с координатами у тебя. К примеру N54°59'42,12'', E173°26'12,05'' переделывается в N54°59'42,12'', E073°26'12,05''. С широтой (N) то же самое, но там это и не нужно, потому что всего 90 градусов в ней, до трёх знаков просто для красоты строки там попросил. А вот у долготы (E) 180 градусов. Да, кстати, N и E тоже могут меняться на S и W с изменением местоположения, но я думаю мне не пригодится:) но всё же хотелось бы иметь такую возможность. Я про то, что если у тебя N или E где-то неизменно в коде прописаны, то это неправильно. вот ссылка если интересно http://ru.wikipedia.org/wiki....0%F2%FB Добавлено (21.11.2013, 18:00) --------------------------------------------- и тогда исходя из вышенаписанного изменить Код sTextSSA = Replace(sTextSSA, "N/A, N/A", "N{\1a&B4\3a&B4}N000°00'00.00"" E000°00'00.00""") на Код sTextSSA = Replace(sTextSSA, "N/A, N/A", "N{\1a&B4\3a&B4}X000°00'00.00"" X000°00'00.00""") конечно, если всё это возможно осуществить
|
|
| |
Andrey_A | Дата: Четверг, 21.11.2013, 18:52 | Сообщение № 11 |
Генералиссимус
На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7191
Награды: 143
Репутация: 125
Аверин Андрей
|
Цитата sexbeer ( ) кстати небольшой косяк с координатами У меня косяков нет - я сделал точную копию того, что выслано. В 2-х скриптах (ещё раз проверил) по тем примерам-файлов всё работает. Я не вникаю в контекст файлов (я даже не знаю для чего они) Высылайте расширенные примеры
|
|
| |
sexbeer | Дата: Четверг, 21.11.2013, 19:01 | Сообщение № 12 |
Рядовой
На сайте с: 18.11.2013
Город: Омск
Сообщений: 9
|
Andrey_A, хорошо. сейчас переделаю и вышлю, ждите новый архив на почте
|
|
| |
Andrey_A | Дата: Четверг, 21.11.2013, 23:14 | Сообщение № 13 |
Генералиссимус
На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7191
Награды: 143
Репутация: 125
Аверин Андрей
|
Конвертировать открытый на редактирование файл субтитров SRT в ASS Используется скрипт Functions.vbs - Скрипт с различными Функциями, которые можно использовать в других скриптах
Доступно только для пользователей
|
|
| |
Andrey_A | Дата: Четверг, 21.11.2013, 23:25 | Сообщение № 14 |
Генералиссимус
На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7191
Награды: 143
Репутация: 125
Аверин Андрей
|
Последний вариант, который ты послал на почту возможно через несколько дней, хотя если чуть вникнуть можно и самому подправить
|
|
| |
sexbeer | Дата: Четверг, 28.11.2013, 09:55 | Сообщение № 15 |
Рядовой
На сайте с: 18.11.2013
Город: Омск
Сообщений: 9
|
Andrey_A, для меня это китайская грамота, честно я думаю у тебя лучше получится. Добавлено (22.11.2013, 11:02) --------------------------------------------- Andrey_A, и к последнему твоему коду комментарий. там где скорость SPEED между цифрами запятую ты оставил, надо точку Код SPEED {\c&00ff00}012,1{\c&FFFFFF}KMH заменить наКод SPEED {\c&00ff00}012.1{\c&FFFFFF}KMH и еще я просил про превышение 60 кмчЦитата sexbeer ( ) когда скорость больше или равна 60,0 кмч, SPEED {\c&00ff00} меняется на SPEED {\c&0000ff} сверь с архивом, который я тебе выслал, там так
и еще один лишний пробел у тебя во второй части строки, то есть вместо надоДобавлено (23.11.2013, 09:13) --------------------------------------------- и еще о знаках препинания:) когда в 4-й строке srt появляется N/A, N/A, alt: N/A,, то запятая в 0,000G не меняется на точку. Добавлено (28.11.2013, 09:55) --------------------------------------------- Вот наваял тут малёха Не суди строго, это мой первый скрипт Код //SRTASS.js
var nCodePage=AkelPad.GetEditCodePage(0); var hMainWnd=AkelPad.GetMainWnd(); var OldName=AkelPad.GetEditFile(0); var pText=AkelPad.ReadFile(OldName); AkelPad.SendMessage(hMainWnd, 273, 4101, 0); AkelPad.ReplaceSel(pText)
if (nCodePage==866) { AkelPad.Recode(1, 1251); }
AkelPad.TextReplace(0, "''", "\"", 0x00200001, true); AkelPad.TextReplace(0, ",", ".", 0x00200001, true);
for (var i = 2; i <= 305; i++) { AkelPad.TextReplace(0, "\r\r"+i+"\r0", "\rDialogue: 0,", 0x00200001, true); }
AkelPad.TextReplace(0, ". speed: N/A", " {\\1a&B4\\3a&B4}SPEED: 000.0 KMH", 0x00200001, true); AkelPad.TextReplace(0, ". speed: ", " SPEED:", 0x00200001, true); AkelPad.TextReplace(0, "\rN/A. N/A. alt: N/A", "\\N_000°00'00.00\" _000°00'00.00\" ALT: 000.0 M", 0x00200001, true); AkelPad.TextReplace(0, " km/h", " {\\c&A1A1A1}KMH", 0x00200001, true);
AkelPad.TextReplace(0, "\rS", "\\NS", 0x00200001, true); AkelPad.TextReplace(0, "\rN", "\\NN", 0x00200001, true); AkelPad.SetSel(0, 1); AkelPad.ReplaceSel("[Script Info]\rScriptType: v4.00+\r\r[V4 Styles+]\rFormat: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding\rStyle: Default,Codename Coder Free 4F,10,16777215,16777215,000000,000000,1,0,0,0,100,100,0,0.00,1,4,0,1,10,0,10,204\r\r[Events]\rFormat: Layer, Start, End, Style, Actor, MarginL, MarginR, MarginV, Effect, Text\r"); AkelPad.TextReplace(0, "\r\r00:0", "\rDialogue: 0,0:0", 0x00200001, true); AkelPad.TextReplace(0, "0\rGT-i9260. Date:", ",Default,,0000,0000,0000,,{\\c&0088FF}GT-i9260{\\r[Default]}", 0x00200001, true); AkelPad.TextReplace(0, "000 --> 00", "00,0", 0x00200001, true); AkelPad.TextReplace(0, "\". alt: -", "\" ALT:-", 0x00200001, true); AkelPad.TextReplace(0, "\". alt: ", "\" ALT:+", 0x00200001, true);
for (var i = 0; i <= 9; i++) { AkelPad.TextReplace(0, "SPEED:"+i+".", "{\\c&A1A1A1}SPEED:{\\r[Default]} {\\1a&B4\\3a&B4}00{\\r[Default]}"+i+".", 0x00200001, true); AkelPad.TextReplace(0, "'"+i+".", "'0"+i+".", 0x00200001, true); AkelPad.TextReplace(0, "NS"+i+"°", "NS{\\r[Default]}00"+i+"°", 0x00200001, true); AkelPad.TextReplace(0, "NN"+i+"°", "NN{\\r[Default]}00"+i+"°", 0x00200001, true); AkelPad.TextReplace(0, "W"+i+"°", "{\\c&A1A1A1}W{\\r[Default]}00"+i+"°", 0x00200001, true); AkelPad.TextReplace(0, "E"+i+"°", "{\\c&A1A1A1}E{\\r[Default]}00"+i+"°", 0x00200001, true); AkelPad.TextReplace(0, "ALT:-"+i+".", "{\\c&A1A1A1}ALT:{\\r[Default]}{\\1a&B4\\3a&B4}-00{\\r[Default]}"+i+".", 0x00200001, true); AkelPad.TextReplace(0, "ALT:+"+i+".", "{\\c&A1A1A1}ALT:{\\r[Default]}{\\1a&B4\\3a&B4}+00{\\r[Default]}"+i+".", 0x00200001, true); }
for (var i = 10; i <= 99; i++) { AkelPad.TextReplace(0, "SPEED:"+i+".", "{\\c&A1A1A1}SPEED:{\\r[Default]} {\\1a&B4\\3a&B4}0{\\r[Default]}"+i+".", 0x00200001, true); AkelPad.TextReplace(0, "NS"+i+"°", "NS{\\r[Default]}0"+i+"°", 0x00200001, true); AkelPad.TextReplace(0, "NN"+i+"°", "NN{\\r[Default]}0"+i+"°", 0x00200001, true); AkelPad.TextReplace(0, "W"+i+"°", "{\\c&A1A1A1}W{\\r[Default]}0"+i+"°", 0x00200001, true); AkelPad.TextReplace(0, "E"+i+"°", "{\\c&A1A1A1}E{\\r[Default]}0"+i+"°", 0x00200001, true); AkelPad.TextReplace(0, "ALT:-"+i+".", "{\\c&A1A1A1}ALT:{\\r[Default]}{\\1a&B4\\3a&B4}-0{\\r[Default]}"+i+".", 0x00200001, true); AkelPad.TextReplace(0, "ALT:+"+i+".", "{\\c&A1A1A1}ALT:{\\r[Default]}{\\1a&B4\\3a&B4}+0{\\r[Default]}"+i+".", 0x00200001, true); }
for (var i = 100; i <= 999; i++) { AkelPad.TextReplace(0, "SPEED:"+i+".", "{\\c&A1A1A1}SPEED:{\\r[Default]} {\\1a&B4\\3a&B4}{\\r[Default]}"+i+".", 0x00200001, true); AkelPad.TextReplace(0, "ALT:-"+i+".", "{\\c&A1A1A1}ALT:{\\r[Default]}{\\1a&B4\\3a&B4}-{\\r[Default]}"+i+".", 0x00200001, true); AkelPad.TextReplace(0, "ALT:+"+i+".", "{\\c&A1A1A1}ALT:{\\r[Default]}{\\1a&B4\\3a&B4}+{\\r[Default]}"+i+".", 0x00200001, true); }
AkelPad.TextReplace(0, "\". ", "\" ", 0x00200001, true); AkelPad.TextReplace(0, "\" E1", "\" {\\c&A1A1A1}E{\\r[Default]}1", 0x00200001, true); AkelPad.TextReplace(0, "\" W1", "\" {\\c&A1A1A1}W{\\r[Default]}1", 0x00200001, true); AkelPad.TextReplace(0, " m", " {\\c&A1A1A1}M", 0x00200005, true); AkelPad.TextReplace(0, "M\r\r", "M\r", 0x00200001, true);
var NewName=OldName.replace(".srt", ".ass"); AkelPad.SaveFile(0, NewName, 1251);
|
|
| |
|