Stránka 1 z 1
Hromadná změna textu
Napsal: 04 led 2018 19:00
od sojkin626
Zdravím,
chtěl bych se zeptat, jestli někdo nezná nějaký šikovnější prográmek k hromadné změně textu, představuji si to tak, že budu chtít změnit kus textu, ale vícekrát a pokaždé za jiný text.
Takže například chci nahradit text, ale abych si mohl nadefinovat všechny variace textu, které budu chtít nahradit... no snad to někdo pochopil, nevím jak jinak bych to popsal...
Předem moc díky za reakci...
Re: Hromadná změna textu
Napsal: 04 led 2018 19:31
od faraon
Jako třeba že do vzorového dopisu budeš vkládat různé adresy, jména a oslovení?
Re: Hromadná změna textu
Napsal: 04 led 2018 19:42
od sojkin626
No, aby jsme si trochu víc rozuměli...
Potřebuji hromadně najít několik úryvků textu (zadat více hledaných úryvků najednou), které bych chtěl nadefinovat a poté nahradit jedním textem.
Re: Hromadná změna textu
Napsal: 04 led 2018 20:16
od zeus
Tak daleko umela inteligence jeste neni, budes se muset spokojit s rucni praci, prip. makrem.
Re: Hromadná změna textu
Napsal: 04 led 2018 20:27
od Uziv00
Napiš si skript.
pc-help.cnews.cz/viewtopic.php?f=61&t=149036
pc-help.cnews.cz/viewtopic.php?f=39&t=106648
pc-help.cnews.cz/viewtopic.php?f=39&t=131647
pc-help.cnews.cz/viewtopic.php?f=35&t=157306
Re: Hromadná změna textu
Napsal: 04 led 2018 20:31
od faraon
Takže přesně naopak. Jako když chceš najít všechna sprostá slova a nahradit je nápisem (CENZURA)
Pokud ty nahrazované úryvky budou krátké, stačil by ti sed (Od roku 1974

):
Kód: Vybrat vše
cat sprosty.txt | sed s/vole/PÍP/g | sed s/prdel/PÍP/g | sed s/debil/PÍP/g > slusny.txt
Pro náročnější úpravy je lepší awk, ale s tím se pracuje o dost složitěji.
Jinak makro ve Vimu nebo Emacsu to zpracuje během pár sekund.
Re: Hromadná změna textu
Napsal: 04 led 2018 21:30
od sojkin626

Super, děkuji... Měl bych ještě jeden dotaz, který je trochu mimo téma, šlo by v *.txt souboru náhodně prohodit obsah o několika řádcích? Například bych chtěl náhodně prohodit každý textový obsah o 4 řádcích a je úplně jedno, na jakém místě to skončí, potřebuji "zamíchat karty"

... Jedná se o jeden můj projekt. Díky moc.
Re: Hromadná změna textu
Napsal: 04 led 2018 22:32
od faraon
To už by asi nějaký skript chtělo, jak velký ten text je?
Re: Hromadná změna textu
Napsal: 04 led 2018 23:10
od Uziv00
Jistěže. Tohle zvládne bez problémů VBS. Má funkci čtení textu po řádcích a ukládání do txt souboru. Náhodné číslo generovat taky umí.
Re: Hromadná změna textu Vyřešeno
Napsal: 05 led 2018 20:25
od faraon
Copak VBS, tohle zvládal namíchat BASIC na IBM-5150 s MS-DOSem 1.0 a jednou 160 KB disketou v roce 1981, když se tenhle počítač ještě nejmenoval PC:
Kód: Vybrat vše
10 DEFINT A-Z
20 DIM k$(999, 3)
30 PRINT "Mixer (C)2018 FARAON pro pc-help.cz"
40 PRINT "Sdileno pod licenci GNU GPL v3 nebo vyssi, viz gnu.org"
100 REM nacteni paklu
110 ON ERROR GOTO 510
120 OPEN "karty.txt" FOR INPUT AS #1
130 FOR k = 0 TO 999
140 FOR r = 0 TO 3
150 LINE INPUT #1, k$(k, r)
160 IF EOF(1) THEN GOTO 200
170 NEXT r, k
180 PRINT "Maximalni pocet!"
190 k = k - 1
200 CLOSE #1
300 REM Knuth micha karty
310 RANDOMIZE TIMER
320 FOR i = 0 TO k
330 n = INT(RND(1) * (k + 1))
340 FOR r = 0 TO 3
350 t$ = k$(i, r)
360 k$(i, r) = k$(n, r)
370 k$(n, r) = t$
380 NEXT r, i
400 REM ulozeni paklu
410 ON ERROR GOTO 530
420 OPEN "mix.txt" FOR OUTPUT AS #1
430 FOR i = 0 TO k
440 FOR r = 0 TO 3
450 PRINT #1, k$(i, r)
460 NEXT r, i
470 CLOSE #1
480 GOTO 540
500 REM ukonceni
510 PRINT "Nelze nacist karty!"
520 GOTO 540
530 PRINT "Nelze ulozit karty!"
540 PRINT "Program skoncil."
550 SYSTEM
Funguje to v GW-Basicu a QBasicu, takže by to měl schroustat i QB64 určený pro novější Wyndejsi

Program načte ze souboru
karty.txt čtveřice řádků, každou čtveřici bere jako jednu kartu, ty zamíchá a vypíše do souboru
mix.txt. Pořadí řádků ve čteřicích zůstává neměnné. Takhle jsi to myslel?
S ohledem na vlastnosti těch šestnáctibitových vykopávek je počet řádků omezen na 1000, délku řetězce zvládaly do 255 znaků, a celková možná velikost souboru se rovná maximální velikosti jimi využitelné paměti, což bylo něco málo přes 60 Kibibajtů. Na hraní a řízení robota svařujícího v NASA rakety to tehdy stačilo.
Re: Hromadná změna textu
Napsal: 14 led 2018 19:08
od sojkin626
Děkuji Faraon, vše funguje podle představ...
