Uwielbiam automatora - jednak za chiny ludowe nie jestem w stanie wymyślić jednej czynności:
problem występuje przy serialach TV w niskiej rozdzielczości. Przy konwertowaniu .txt na .srt PYM playerem - nie dopasowuje on długości wiersza do szerokości okna, stąd non stop dialogi są obcinane.
Rozwiązaniem jest ręczne szukanie długich wierszy i "enterowanie"
SRT Tool mówi, że "format unknown" - dlatego pozostał mi tylko PYM
proszę o pomoc przy poniższej regule:
[program Text Edit]
jeżeli wiersz zawiera +55 znaków -----> ENTER
Chyba jedynym wejściem jest Apple Script - ale że jestem zielony, sam sobie nie poradzę.
dzięki serdeczne z góry

[POMOCY] Text Edit : jeśli wiersz +55 znaków ->ENTER
Rozpoczęty przez
jackolus
, 14 lut 2009 11:57
6 odpowiedzi w tym temacie
#1
Napisano 14 lutego 2009 - 11:57
#2
Napisano 14 lutego 2009 - 14:07
Zapisz ten plik na dysk, np. na pulpit pod nazwą foldLines.awk:
awk -f ~/Desktop/foldLines.awk >
Jeśli chcesz zawijać linię o innej długości zmień przypisanie max_len = 50
---- Dodano 14-02-2009 o godzinie 16:22 ----
Poprawiona wersja - nie obcina wyrazu w połowie:
!/-->/{ max_len = 50 print max_len; if(length($0) < max_len) { print $0; } else { print substr($0, 0, max_len); print substr($0, (max_len+1), 500); } } /-->/{ print $0; }Teraz z terminala wywołaj:
awk -f ~/Desktop/foldLines.awk
---- Dodano 14-02-2009 o godzinie 16:22 ----
Poprawiona wersja - nie obcina wyrazu w połowie:
!/-->/{ max_len = 50 if(length($0) < max_len) { print $0; } else { output = ""; for(i=1; i<NF; i++) { if(length(output) > max_len) { print output; output = ""; } output = output " " $i; } print output; } } /-->/{ print $0; }
#3
Napisano 16 lutego 2009 - 00:17
Skrypt działa - dzięki serdeczne, jestem zobowiązany
ale jeszcze jedno pytanie:
jak ustawić wartość zmiennej pliku wejściowego, tzn. w teorii:
1) wybieram rzecz np. z okna findera
2) pobierana jest ścieżka do wybranego pliku i podstawiana w miejsce X.srt pliku wejściowego
3) automatycznie plik jest nadpisywany
i tak odjąłeś mi kilkanaście minut pracy - ale wiadomo, człowiek chce więcej i dlatego trochę uciążliwym jest za każdym razem wklepywanie polecenia do terminala dla kolejnego pliku o specyficznej nazwie.
czyli w zasadzie jak powiedzieć Automatorowi, żeby:
a) Prośba o rzeczy Findera
pobierz ścieżkę pliku
c) zamień ścieżkę na nową zmienną (ARG1)
d) uruchom skrypt powłoki
awk -f ~/Desktop/foldLines.awk {ARG1} > {ARG1}
wklejając tą samą ścieżkę w wejście i wyjście chyba nie powinien się pytać o nadpisanie (?)


#5
Napisano 16 lutego 2009 - 15:17
Automator działa jak marzenie - dzięki wielkie 
natomiast dopiero teraz zauważyłem, że skrypt awk robi ciekawostkę:
- przenosi czasem bardzo długie zdania prawidłowo ale ZAWSZE ucina ostatnie słowo z kropką na końcu.
dla porównania: (Unicode, stąd te znaczki)
przed:
Nie. Mam dla ciebie coŇõ co pomoŇľe ci wygrańá jutrzejszy konkurs literowania.
po:
Nie. Mam dla ciebie coŇõ co pomoŇľe ci wygrańá jutrzejszy
konkurs

natomiast dopiero teraz zauważyłem, że skrypt awk robi ciekawostkę:
- przenosi czasem bardzo długie zdania prawidłowo ale ZAWSZE ucina ostatnie słowo z kropką na końcu.
dla porównania: (Unicode, stąd te znaczki)
przed:
Nie. Mam dla ciebie coŇõ co pomoŇľe ci wygrańá jutrzejszy konkurs literowania.
po:
Nie. Mam dla ciebie coŇõ co pomoŇľe ci wygrańá jutrzejszy
konkurs
#6
Napisano 16 lutego 2009 - 15:20
Spróbuj podmienić
na
for(i=1; i<NF; i++)
na
for(i=1; i<(NF+1); i++)
#7
Napisano 16 lutego 2009 - 17:02
prędkość odpisywania masz niesamowitą, kompetencje również
wszystko działa - co prawda przy enterowanym zdaniu daje dwie spacje na początku każdej linijki ale w niczym to nie przeszkadza, więc wszystko jest w pełni funkcjonalne
dzięki ogromne

Użytkownicy przeglądający ten temat: 1
0 użytkowników, 1 gości, 0 anonimowych