
linebreak.pl v1.2

Tai programa Perl kalba, skirta teksto ilg eilui suskaidymui  trumpesnes.
Jos panaudojimo formatai:

perl linebreak.pl [-big|-gradually] [file_name] start_position max_line_length
perl linebreak.pl -version
perl linebreak.pl -help

Nutylimosios eiluts ilgio reikms yra 68 ir 80.

(c)2024, Vartiklis, Jonas Skendelis.  linebreak.pl yra platinama pagal
MIT License (r. faile license.txt ) licenzij. Ji leidia neribotai
naudoti, kopijuoti, modifikuoti, platinti ir pardavinti jos kopijas.
Taiau visose io programinio produkto pilnose kopijose ar atskirose
dalyse turi bti isaugomas autorinis raas bei licenzijos tekstas.


Smulkesnis apraymas

Kartais tekstiniame faile eiluts yra labai ilgos, pvz., visa pastraipa
yra isaugota kaip viena eilut. Tok tekst sunkiau skaityti, tad natralus
noras jo eilutes matyti trumpesnmis. Tam galime pasinaudoti kai kuriomis
programomis (pvz., Notepad++ Word Wrap reimas nurodo, kad perirint
tekst jo eiluts bus lauomos taip, kad visad tilpt  ekran; jei
t lauin ufiksuoti, reikia vykdyti operacij Edit -> Line Operations
-> Split Lines). Yra ir daugiau program (pvz. Microsoft WinWord),
leidiani isaugoti tokius lauinius.

Taiau ne visada tinkama programa yra po ranka, o kartais jos yra komercins
ir nepigios, tad paprastam ir greitam sprendimui Perl kalboje buvo
sukurta linebreak.pl programa, kuri nuskaito pradin tekst ir visas
jo eilutes suskaido  trumpesnes pagal nurodytus parametrus.

Skaidymo valdymui yra naudojami du parametrai: vienas nurodo minimal
eiluts ilg, o kitas maksimal leistin ilg. Eilut iki minimalaus
ilgio nra skaidoma, o j pasiekus, toliau iekoma tarpo simbolio, ties
kuriuo eilut ir lauiama. Jei tarpas nra surandamas iki pasiekiant
maksimal eiluts ilg, eilut prievarta lauiama ties maksimaliu nurodytu ilgiu.

Tad emiau pateikta komanda sulauys tekst i standartinio vedimo srauto
(konsols)  eilutes, ne trumpesnes nei 70 simboli, taiau ne ilgesnes
nei 90 simboli, t.y. ties pirmu tarpu, esaniu po 70-os pozicijos. Rezultatas
bus ivestas  standartin ivedimo sraut (konsol).

perl linebreak.pl 70 90

Rezultat vietoje konsols galima nukreipti  fail (panaudojant >), pvz., 
perl linebreak.pl 70 90 >skaidytas.txt

Skaidytin fail galima nurodyti ne tik nukreipiant  vedimo sraut
(panaudojant <), pvz.,  
perl linebreak.pl 70 90 <tekstas.txt
ar leidiant paimti i konvejerio (panaudojant | ), pvz.,
more testas.txt | perl linebreak.pl 70 90
bet ir nurodant j pirmuoju parametru komandoje, pvz.,
perl linebreak.pl tekstas.txt 70 90


Yra dar vienas aspektas. Nutylint visas tekstas (failas) ikart nuskaitomas
vienu ypu. Taiau jei failas labai didelis, o kompiuterio resursai riboti,
gali bti, kad yra geriau skaityti po vien eilut. Be to, dirbant tokiu
bdu, didesni failai apdorojami daugiau nei du kartus spariau. Tam skirtas
parametras -big arba -gradually (abu jie lygiaveriai ir reikia t pat
reim), kuris turi bti pirmasis komandoje. J nurodius, tekstas skaitomas
ir apdorojamas po vien eilut. Pvz.,
perl linebreak.pl -big tekstas.txt 70 90
perl linebreak.pl -big 70 90
kurie lygiaveriai
perl linebreak.pl -gradually tekstas.txt 70 90
perl linebreak.pl -gradually 70 90


Planuojami tolimesni ivystymai

Galimos ir bsimos linebreak.pl versijos, trauksianios naujas galimybes.
Artimiausioje numatyta galimyb nurodyti skirtuku ne tik tarp, bet ir
kitokius simbolius.

Taip pat planuojama  linebreak perkelti  kitas terpes: Python, Linux
vykdomuosius skriptus (batch), C/C++ - ir, galbt, dar kitas.

Pastaba: linebreak jau perkelta  awk aplink.


Versijos

1. Pirmoji versija yra demonstracin. Jos kodas pateiktas puslapyje:
http://www.lithuanian.net/advancedhtml/perl.htm#linebreak

2. v1.1. versija:
v1.2 skirtumai nuo 1.1 versijos:
a) smulks patikslinimai formatuojant informacinius praneimus;
b) daugiau nei 2 kartus padidintas efektyvumas (sparta) panaudojus
vidin Perl funkcij;
c) leistos nutylimosios eilui ilgi reikms;
d) atnaujintas apraymas (readme failai).


Priedas

Linux komandos fold ir fmt

Linux turi komand fold, kuri atlieka labai pana darb  ilgas eilutes
suskaito  trumpesnes.
Jos formatas:
fold -s [opcijos] [failas]
Leistinos tokios opcijos:
-s - skelti ties tarpais;
-w NNN  eiluts ilgis yra NNN simboli;
- b  skaiiuoti baitus, o ne simbolius.

Dar lankstesn ir daugiau galimybi suteikianti yra Linux komanda fmt,
performatuojanti teksto pastraipas ir rezultat ivedanti  standartin
ivedimo rengin. Jos formatas:
fmt [-WIDTH] [OPTION]... [FILE]..

[-WIDTH] yra eiluts ilgio nurodymo formatas, kur galima nurodyti vairiai:
-NNN, -wNNN ar -w NNN (nutylint yra 75)
[OPTION] yra opcija, nurodanti specifin veikimo bd (-c, -p, -s, -t,
-u), nurodant, kaip interpretuojamas pastraipos traukimas, kaip pastraipa
upildoma tarpais ir kita. ia jos nebus aptariamos, - skaitykite komandos
apraym.

Pastaba: fold ir fmt komanda yra ir tarp Unix stiliaus utilit Windows
terpei UnxUtils. Jas galima parsisisti i svetains
https://sourceforge.net/projects/unxutils/
