Jak vymazat část textu v jiném jazyce ze souboru? Vyřešeno

...

Moderátor: Mods_senior

bluenite
Level 2
Level 2
Příspěvky: 178
Registrován: květen 06
Bydliště: Praha8
Pohlaví: Nespecifikováno

Jak vymazat část textu v jiném jazyce ze souboru?

Příspěvekod bluenite » 01 lis 2021 23:10

Potřebuji upravit jeden titulkový soubor (původně *.ass), který je dvojjazyčný – EN+Korejština, viz screen.
Ten druhý bych potřeboval dát pryč. Existuje na to nějaký automatizovaný postup, místo ručního mazání? Program, nebo něco jiného třeba?
Díky za radu
Petr
Nemáte oprávnění prohlížet přiložené soubory.

Reklama
zeus
Elite Level 10
Elite Level 10
Příspěvky: 10259
Registrován: únor 12
Bydliště: Pankrac
Pohlaví: Muž

Re: Jak vymazat část textu v jiném jazyce ze souboru?

Příspěvekod zeus » 02 lis 2021 09:56

Pochybuji, kdyz je ten caj takhle nepravidelne rozsypany.
Jo, kdyby stacilo mazat kazdy paty radek...
Prazaci jo ty se maj, az kdyz si me zavolaj..

Serg01
nováček
Příspěvky: 9
Registrován: červenec 21
Pohlaví: Nespecifikováno

Re: Jak vymazat část textu v jiném jazyce ze souboru?

Příspěvekod Serg01 » 02 lis 2021 15:11

Jestli je korejská verze (i když tohle spíš vypadá jako kanji, korejština má jiné písmo, ne?) vždy pod časem ve videu, tak by stačil Notepad++, funkce vyhledat a nahradit (Ctrl + H), a regulérní výraz, např.:

Find what:

Kód: Vybrat vše

(\d+\r\n\d{2}:\d{2}:\d{2},\d{3} --> \d{2}:\d{2}:\d{2},\d{3}\r\n)(.+)\r\n

Replace with:

Kód: Vybrat vše

$1

je potřeba vybrat "Search mode" jako "Regular expression", a nezaškrtávat ". matches newline" hned vedle toho, jen nevím jak to bude přeložené v české verzi Notepadu++

Odstraní každý řádek, který následuje po:

Kód: Vybrat vše

# (jakýkoliv počet cifer až do konce řádku)
##:##:##,### --> ##:##:##,###
(tento řádek bude odstraněn)
následující řádek zůstane

kde # představuje jakoukoliv číslici

Snad tam nejsou na konci řádků žádné mezery, jinak by to tenhle regulerní výraz nenašel
A místo \r\n možná bude stačit jen \n (záleží jestli ten soubor byl vytvořený ve windowsu nebo v linuxu)

Btw, kdyby jsi to opravdu chtěl zkusit, tak doporučuji nejdřív vytvořit kopii, a hrát si s tou kopií :D

bluenite
Level 2
Level 2
Příspěvky: 178
Registrován: květen 06
Bydliště: Praha8
Pohlaví: Nespecifikováno

Re: Jak vymazat část textu v jiném jazyce ze souboru?

Příspěvekod bluenite » 02 lis 2021 17:43

jojo mýlka, není to korea ale čína...
Každopádně by to snad fungovalo, ale právě tady není pravidelnost vymazání každěho x řádku. Někde je řádek pouze en...
viz dva soubory v příloze - originál ass před konverzí a pak ten konvertovaný srt, který se blíží více mému použití.
Zbývá ruční mazání, což mě přivedlo k původnímu dotazu.
Nemáte oprávnění prohlížet přiložené soubory.

Serg01
nováček
Příspěvky: 9
Registrován: červenec 21
Pohlaví: Nespecifikováno

Re: Jak vymazat část textu v jiném jazyce ze souboru?

Příspěvekod Serg01 » 02 lis 2021 20:59

Here.

Šlo to celkem jednoduše tímto regexpem (zdroj zde):

Kód: Vybrat vše

\n.+[^\x00-\x7F].+\n -> non-ASCII znak kdekoliv na řádku, ale minimálně 3 znaky

Ten našel a odstranil každý řádek, který obsahoval "non-ASCII" znak.
Ale musely tam být minimálně 3 znaky, jelikož některé řádky měly jen jedno nebo dva čínské znaky, tak to bylo potřeba projet celý ještě jednou těmito regexpy:

Kód: Vybrat vše

\n[^\x00-\x7F].+\n -> non-ASCII znak na začátku řádku

Kód: Vybrat vše

\n.+[^\x00-\x7F]\n -> non-ASCII znak na konci řádku

Ale teď mě napadá, že možná stačilo místo kvantifikátoru plusu (minimálně jeden odpovídající znak) použít u tečky (jakýkoliv znak) jako kvantifikátor hvězdičku (0 až neomezeně odpovídajících znaků)

Kód: Vybrat vše

\n.*[^\x00-\x7F].*\n

A nemusel bych to nechat prohledávat 3x :D
Ty tečky tam jsou proto, že občas byly na řádku nejen všechno čínské znaky, ale například čísla, která už jsou ASCII znaky.

Každopádně teď tam vznikly občas časy, pro které není žádný text, nevím co to udělá v přehrávači.
Například:
9
00:00:31,920 --> 00:00:34,520
and its most spectacular.

10
00:00:58,030 --> 00:01:04,330

11
00:01:07,330 --> 00:01:10,330

12
00:01:35,230 --> 00:01:39,260
Day 1, filming in Idaho's Pioneer Mountains,

Šlo by to takové výskyty najít a odstranit dalším regexpem, ale pak se rozbije číslování (po 9 bude najednou 12).
A tím se už fakt dostáváme k původnímu dotazu - nějký program který by opravil i číslování :D
Nemáte oprávnění prohlížet přiložené soubory.

bluenite
Level 2
Level 2
Příspěvky: 178
Registrován: květen 06
Bydliště: Praha8
Pohlaví: Nespecifikováno

Re: Jak vymazat část textu v jiném jazyce ze souboru?  Vyřešeno

Příspěvekod bluenite » 03 lis 2021 22:20

dobrá duše mi poslala verzi en titulkú bez tohoto mixu, takže problémek vyřešen.
díky moc za všechny reakce
serg01 zvlášť, za ty 'non-ASCII znak' to je to co lze použít nejspíš i pro jiné případy. šikovná hlava.


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Google obrázky: jak zjistit produkt v jiném jazyce?
    od Matiseli » 17 črc 2021 10:43 » v Vše ostatní (inet)
    4
    368
    od X
    17 črc 2021 16:54
  • PROGRAMOVÁNÍ V JAZYCE C
    od 99Nobody99 » 06 pro 2020 20:54 » v Programování a tvorba webu
    6
    1076
    od Uživatel1000
    07 pro 2020 08:16
  • jak vymazat data na harddisku?
    od Radek.S » 05 led 2021 11:48 » v Problémy s hardwarem
    2
    275
    od ITCrowd
    05 led 2021 12:01
  • počet výskytů textů
    od dikinak » 09 úno 2021 23:01 » v Kancelářské balíky
    4
    716
    od dikinak
    10 úno 2021 16:19
  • Kopírování textu z PC na mobil
    od MikePlays_ » 07 čer 2021 18:07 » v Vše ostatní (sw)
    0
    446
    od MikePlays_
    07 čer 2021 18:07

Zpět na “Vše ostatní (sw)”

Kdo je online

Uživatelé prohlížející si toto fórum: CommonCrawl [Bot] a 3 hosti